奇怪的问题,但让我有点困惑。在我们拥有终端和 DOS 的过去,应用程序通常只有一个“窗口”,而且是全屏窗口。人们切换功能时,并没有打开新窗口的概念,而是覆盖了主窗口的内容。因此只有一个主窗口,但其中呈现了多个屏幕。
如何在现代应用程序(WinForms 或 WPF)中创建类似的东西?
似乎有两种方法:
- 有多个窗口。这是通常的方法,通常允许用户同时使用多个窗口是有意义的,但这可能不是必需的/不希望的。使用 ShowDialog() 而不是 Show() 是制作第二个窗口模式的常用方法。
- 只有一个窗口,但上面有一个 TabControl。隐藏选项卡并以编程方式切换它们。这接近于“一个窗口,多个屏幕”的行为,但自然会变得困惑,因为您将所有控件都放在同一个 Form 类中(尽管有人可能会争辩说这会强制对控件进行正确命名。此外,有人可能会建议使用部分类和每个屏幕一个 .cs)
不知道有没有更好的办法?本质上是说“看,我不关心边框样式/图标或主菜单条之类的东西。我想要的只是你将这个屏幕渲染到这个区域”。有点像 ASP.net 母版页,其中实际页面仅定义呈现到占位符中的内容。
是否有一些适当的机制来做这样的事情?
还是整个方法有问题?
最佳答案
一种方法是将每个屏幕实现为一个用户控件,并根据需要在主窗口中动态加载和卸载这些控件。我已经在 Windows 移动应用程序中使用了这种方法,并且效果很好。
关于c# - 在应用程序中实现多个屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1596662/