我以前做过这个,但我找不到我的旧代码。
如何在窗口中嵌入窗口。
假设我创建了一个自定义表单并将其保存为Window1.xaml,并希望将其嵌入到Window2.xaml中,而无需复制并粘贴xaml代码.. TIA
编辑:我认为我的问题有些误导,我会改写它。
我有这个Window1.xaml我添加了自定义标题和背景图像/颜色。
然后在Window2.xaml中,我希望Window1成为自定义控件并将其嵌入此处。
不确定其内容演示者是否仍在谷歌上搜索答案:)
答案 0 :(得分:3)
您无法在另一个WPF窗口中托管WPF窗口,但您可以将内容从一个窗口移动到另一个窗口:
var window1 = new Window1();
var window2 = new Window2();
var content = window1.Content;
window1.Content = null;
window2.Content = content;
请注意,您将window1.Content
设置为null
,否则您会收到异常,因为否则内容将具有可视父级。
<强>更新强>
您需要做的就是将<Window></Window>
中的Window1
标记之间的所有XAML复制到新的UserControl
中,然后在Window2
中托管该用户控件。
答案 1 :(得分:1)
我相信在这种情况下你应该使用Pages或usercontrols。这样,您可以导航到应用程序中定义的其他部分/页面/控件。 CodeKaizen是对的,你不能在另一个窗口内托管一个窗口
答案 2 :(得分:0)
我不确定你能做到这一点 - 但是,你不应该将用户界面直接放到窗口中,而是使用普通控件(自定义或用户),并在窗口中重复使用。
答案 3 :(得分:0)
我知道你可以在
背后的代码中做到这一点//Window you want to show
Window1 child = new Window1();
object content = child.Content;
child.Content = null;
//Where to show
this.grid1.Children.Clear();
this.grid1.Children.Add((UIElement)content);
希望有所帮助!
答案 4 :(得分:0)
听起来你真的想要一个UserControl。将Window1的类型从Window更改为UserControl,然后将该UserControl放入Window2。