C# · 12月 25, 2021

c# – 在应用程序中实现多个屏幕

奇怪的问题,但一个让我困惑的问题.在我们有终端和DOS的过去,应用程序通常只有一个“窗口”,这是一个全屏幕.当人们切换功能时,没有打开新窗口的概念,而是覆盖了主窗口的内容.所以只有一个主窗口,但是在其中呈现了多个屏幕.

如何在现代应用程序(WinForms或WPF)中创建类似的东西?

似乎有两种方法:

>拥有多个Windows.这是通常的方法,通常允许用户同时使用多个窗口是有意义的,但这可能不是必需/期望的.使用ShowDialog()而不是Show()是制作第二个窗口模态的常用方法.
>只有一个窗口,但有一个TabControl.隐藏选项卡并以编程方式切换它们.这接近于“一个窗口,多个屏幕”的行为,但自然它会变得混乱,因为你在同一个Form类中拥有所有控件(虽然有人可能会认为这会强制控件的正确命名.另外,可以建议使用部分类和每个屏幕一个.cs)

我想知道是否有更好的方法?基本上是“看,我不关心边框样式/图标或主菜单条等内容.我想要的就是将这个屏幕渲染到这个区域”.有点像ASP.net主页,其中实际页面只定义被渲染到占位符的内容.

是否有一些适当的机制来做这样的事情?

或者整个方法有问题吗?

解决方法 一种方法是将每个屏幕实现为用户控件,并根据需要在主窗口中动态加载和卸载这些控件.我在Windows移动应用程序中使用了这种方法,并且它运行得很好.