WPF:在具有关闭按钮的子窗口chrome中包含控件

时间:2010-12-02 10:12:34

标签: .net wpf .net-4.0 c#-4.0

我是一名C ++程序员,我已经开始了一个辅助项目来教我一些WPF。我已经开始制作桌面应用程序来浏览图像并可能修饰它们,比如paint.net。

我想在子窗口chrome中包含控件(例如,见下图),它有一个关闭按钮。像MDI这样的东西,但并不完全 alt text

现在,最简单的方法是将它封装在另一个<window></window>中,但似乎WPF不喜欢这个。它给出了运行时异常。

是否有更简单的方法。我找不到任何类似的解释链接。

1 个答案:

答案 0 :(得分:3)

要使用Window,您需要在单独的文件中创建一个新的Window类,然后您可以从主窗口的代码中实例化并显示它。

var childWindow = new MyChildWindow();
childWindow.Show();

要在MyChildWindow中获取简化的窗口镶边,请设置WindowStyle = WindowStyle.ToolWindow。

如果您尝试在主窗口内创建一个需要使用普通非窗口控件的包含模拟窗口。 Silverlight包含一个ChildWindow类,但它没有内置到WPF中。要创建类似的东西,您可以使用HeaderedContentControl,通过修改ControlTemplate,您必须将其设置为工具窗口。您还需要在控件上创建拖动,调整大小和关闭等行为,通常最好通过将其设置为自定义控件来处理。