WPF自定义控制问题

WPF自定义控制问题,wpf,wpf-controls,Wpf,Wpf Controls,我以前做过,但找不到我的旧代码 如何在窗口中嵌入窗口 假设我创建了一个自定义表单并将其保存为Window1.xaml,并希望将其嵌入Window2.xaml中,而不复制和粘贴xaml代码。。短暂性脑缺血发作 编辑:我认为我的问题有点误导,我会重新措辞 我有这个Window1.xaml,我添加了自定义标题和背景图像/颜色 然后在Window2.xaml中,我希望Window1是一个自定义控件,并将其嵌入此处 不确定其内容演示者是否仍在谷歌上搜索答案:我不确定您是否能做到这一点-但是,您不应该将用户

我以前做过,但找不到我的旧代码

如何在窗口中嵌入窗口

假设我创建了一个自定义表单并将其保存为Window1.xaml,并希望将其嵌入Window2.xaml中,而不复制和粘贴xaml代码。。短暂性脑缺血发作

编辑:我认为我的问题有点误导,我会重新措辞

我有这个Window1.xaml,我添加了自定义标题和背景图像/颜色

然后在Window2.xaml中,我希望Window1是一个自定义控件,并将其嵌入此处


不确定其内容演示者是否仍在谷歌上搜索答案:

我不确定您是否能做到这一点-但是,您不应该将用户界面直接放在窗口中,而是使用常规控件(自定义控件或用户控件)并在您的窗口中重新使用它。

我不确定您是否能做到这一点-但是,您不应将用户界面直接放在窗口中,而应使用常规控件(自定义控件或用户控件),并在您的窗口中重新使用该控件。

您不能在另一个WPF窗口中托管WPF窗口,但您可以将内容从一个窗口移动到另一个窗口:

var window1 = new Window1();
var window2 = new Window2();

var content = window1.Content;
window1.Content = null;
window2.Content = content;
请注意,您将window1.Content设置为null,否则会出现异常,因为否则内容将具有可视父级

更新
您需要做的似乎就是将Window1中标记之间的所有XAML复制到新的UserControl中,然后在Window2中托管该用户控件。

您不能在另一个WPF窗口中托管WPF窗口,但可以将内容从一个窗口移动到另一个窗口:

var window1 = new Window1();
var window2 = new Window2();

var content = window1.Content;
window1.Content = null;
window2.Content = content;
请注意,您将window1.Content设置为null,否则会出现异常,因为否则内容将具有可视父级

更新
看起来您所需要做的就是将Window1中标记之间的所有XAML复制到一个新的UserControl中,然后在Window2中托管该用户控件。

我知道您可以在代码隐藏中完成

//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);

希望有帮助

我知道你可以在代码隐藏中完成

//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);

希望有帮助

我认为在这种情况下,您应该使用页面或用户控件。通过这种方式,您可以导航到应用程序中定义的其他部件/页面/控件。CodeKaizen是对的,你不能把一个窗口放在另一个窗口中,我认为在这种情况下你应该使用页面或用户控件。通过这种方式,您可以导航到应用程序中定义的其他部件/页面/控件。CodeKaizen是对的,你不能把一个窗口放在另一个窗口中,听起来你真的想要一个用户控件。将Window1的类型从Window更改为UserControl,然后将该UserControl放入Window2。

听起来您真的想要一个UserControl。将Window1的类型从Window更改为UserControl,然后将该UserControl放入Window2。

我认为它确实不是直接放入窗口,我希望它像一个自定义控件我认为它确实不是直接放入窗口,我希望它像一个自定义控件一样不错,但是你可以让这段代码更紧凑一点,将内容声明为UIElement或var,不需要grid1。不错,但是你可以让这段代码更紧凑一点,将内容声明为UIElement或var,不需要grid1。