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 回答
这种方法可能有助于:
调用容器控件并修改它的Children.This示例假定容器控件是Grid .
Window1的C#代码
UserControl1的C#代码
是的,这有帮助,但它并不真正取代UC1它只是把它变成一个小点,并在主要窗口的litelle空间这里是一些解释如果你喜欢http://startou.com/file/630-9411954b18.html