我尝试使用另一个usercontol按钮切换usercontrol,然后在wpf应用程序的主窗口中设置第二个usercontol,
例如
使用user_list
用户控件按钮并切换add_user
用户控件,此用户控件是在主窗口中设置的此用户控件(add_user用户控件)
user_list.xaml
答案 0 :(得分:0)
您有很多无需使用其他框架即可实现此目标的方法:
add_user
中同时具有两个用户控件user_list
和MainWindow.xaml
:<Grid>
<local:user_list x:Name="userList"></local:user_list>
<local:add_user x:Name="addUser" Visibility="Hidden"></local:add_user>
</Grid>
然后在代码背后的click事件处理程序中,切换Visibility
属性:
private void Button_Click(object sender, EventArgs e) {
userList.Visibility = Visibility.Hidden;
addUser.Visibility = Visibility.Visible;
//Do other stuff like update data if needed
}
UserControl
中只有主user_list
MainWindow
是这样的:<Grid>
<local:user_list x:Name="userList"></local:user_list>
</Grid>
并创建并显示一个新的Window
,以在后面的代码中显示您的add_user
控件:
private void Button_Click(object sender, EventArgs e) {
var window = new Window();
window.SizeToContent = SizeToContent.WidthAndHeight;
window.Content = new add_user();
window.ShowDialog() //blocking call
}
Window
,您可以将add_user
控件动态添加到现有MainWindow
的可视树中,如下所示:<Grid>
<local:user_list x:Name="userList"></local:user_list>
<ContentControl x:Name="contentControl"></ContentControl>
</Grid>
以及背后的代码:
private void Button_Click(object sender, EventArgs e) {
contentControl.Content = new add_user();
}