首页 文章

在mainWindows中打开新的UserControl

提问于
浏览
1

public partial class Window1:Window {public Window1(){InitializeComponent(); }

private void ToggleButton_Checked(object sender, RoutedEventArgs e)
    {
        switch ((sender as Button).Content.ToString())
        {
            case "UserControl 1":
                AddItemToContainer(new UserControl1());
                break;
            case "UserControl 2":
                AddItemToContainer(new UserControl2());
                break;
            case "UserControl 3":
                AddItemToContainer(new UserControl3());
                 break;
            default:
                break;
        }
    }

    void AddItemToContainer(UIElement _myElement)
    {
            Grid.SetColumn(_myElement, 1);
            HostContainer.Children.Add(_myElement);
    }
}
}
}

有了这个,我可以在myMainwindow中打开一个新的userControl

让我们说像myMainWinodw这样添加一个孩子,现在我正试图点击我的userControl中的一个按钮,所以我打开另一个userControl代替第一个

我解释:

我有mainWindows它有3个按钮第一个打开第一个UserControl第二个打开第二个userControl,第三个打开最后一个UserControl,想象我打开第一个UserControl让它叫它UC1,

在UC1中我有一个按钮来打开第二个userControl(让我们称之为UC2)我喜欢当我从UC1按下按钮时UC2打开并取代UC1(当然UC2仍然是孩子的myMainWinodw)我已经尝试从其他方法调用AddItemToContainer方法但没有发生任何事情

有任何建议请

2 回答

  • 0

    这种方法可能有助于:

    调用容器控件并修改它的Children.This示例假定容器控件是Grid .

    Window1的C#代码

    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
            HostContainer.Children.Add(new UserControl1(HostContainer));
        }
    }
    

    UserControl1的C#代码

    public partial class UserControl1 : UserControl
    {
        Grid _hostContainer; 
    
        public UserControl1(Grid HostContainer)
        {
            InitializeComponent();
            _hostContainer = HostContainer;
        }
    
        private void ToggleButton_Checked(object sender, RoutedEventArgs e)
        {
            UserControl2 UC2 = new UserControl2();
            _hostContainer.Children.Add(UC2);
        }
    }
    
  • 0

    是的,这有帮助,但它并不真正取代UC1它只是把它变成一个小点,并在主要窗口的litelle空间这里是一些解释如果你喜欢http://startou.com/file/630-9411954b18.html

相关问题