我希望在我的桌面应用程序中有一个可重复使用的窗口,它可能会有不同的“xamls”注入其中。因为我希望我的所有窗户看起来都一样(我有一个漂亮的标题栏和关闭按钮等)
例如,我想在其中使用消息框(ok / cancel / string)。我希望它可以用来托管表格等。
我目前有:
MyWindow.xaml / cs(是一个窗口)
MyMessageBox.xaml / cs(是用户控件)
MyForm.xaml / cs(是用户控件)
那么实现这个的最佳方法是什么。我只是将一个ContentPresenter放入MyWindow然后以某种方式“注入”其他xamls吗?我是否需要其他控件才能从基本窗口继承内容?
我只是想找到关于我正在尝试做的最佳方式的一些反馈。感谢
答案 0 :(得分:2)
一种简单的方法是带框架的窗口,然后根据需要将页面加载到该框架中。
答案 1 :(得分:1)
我同意Henk Holterman's answer。我刚刚为这种WPF应用程序编写了一个小“框架”。我在“内容”页面上使用了一个界面来定义代码隐藏的常用功能;我有一个通用的页面模板,我用它来给我一个标题块,关闭按钮等。
除非你绝对需要,否则我会避免使用WPF进行可视化继承 - 要想做到这一点可能会相当棘手。
答案 2 :(得分:0)
Catel的DataWindow就是这样做的。你可以在这里找到源代码:
答案 3 :(得分:0)
您应该认真考虑使用Prism(由Microsoft开发,来自Patterns & Practices组);它的构建是为了处理这些场景,为composing UIs提供工具。
答案 4 :(得分:0)
答案 5 :(得分:0)