具有多个视图的 WPF 桌面应用程序

Posted

技术标签:

【中文标题】具有多个视图的 WPF 桌面应用程序【英文标题】:WPF desktop application with multiple views 【发布时间】:2013-08-09 23:24:54 【问题描述】:

我有一个在 Windows 8 上运行的 WPF 应用程序。它是一个单窗口应用程序,在主窗口的整个客户区域中具有三个不同的视图:来自网络摄像头的实时视频、帮助屏幕和资源使用状态。如您所见,它们不相关或相互交互,但我想在一个窗口中显示它们而不是弹出一个新窗口。通过单击每个视图中的按钮或键入键盘快捷键来切换视图。

我目前正在使用 UserControl 实现每个视图,然后在用户事件的 MainWindow 网格中添加/删除这些 UserControl。我不确定使用 UserControl 是否是正确的方向,因为 UserControl 向我显示的是按钮等小部件的图像,而不是整个窗口的内容。

我做得对吗?我只是查看了 Page 控件,但我不确定这是否是个好主意。提前致谢!

【问题讨论】:

【参考方案1】:

我目前正在使用 UserControl 实现每个视图,然后在用户事件的 MainWindow 网格中添加/删除这些 UserControl。我不确定使用 UserControl 是否是正确的方向,因为 UserControl 向我显示的是按钮等小部件的图像,而不是整个窗口的内容。

UserControlWindow 提供大部分(或全部)内容并没有错。事实上,这在使用框架时相当常见,因为在某些框架中为您创建了窗口。

我不会担心为此使用UserControl

【讨论】:

【参考方案2】:

在单个 WPF 窗口上实现多个视图的另一种流行方法是使用选项卡控件并将每个选项卡设置为不同的用户控件。

用户控件确实很有用,而且你做了一些非常有效的事情。

【讨论】:

以上是关于具有多个视图的 WPF 桌面应用程序的主要内容,如果未能解决你的问题,请参考以下文章

WPF - 使用具有多个 ViewModel 的单个模型

WPF应用程序的测试自动化

创建一个应用程序,对同一个 Web 应用程序具有多个视图,但使用不同的凭据?

处理 WPF 应用程序中多个视图之间的导航

在 Windows 桌面应用程序中的 OpenGL 窗口上显示 WPF 控件

多个视图模型之间状态共享的具体示例(WPF MVVM)