【发布时间】:2009-10-20 19:00:30
【问题描述】:
奇怪的问题,但让我有点困惑。在过去,当我们有终端和 DOS 时,应用程序通常只有一个“窗口”,那就是全屏窗口。当人们切换功能时,并没有打开新窗口的概念,而是覆盖了主窗口的内容。所以只有一个主窗口,但在其中渲染了多个屏幕。
如何在现代应用程序中创建类似的东西,无论是 WinForms 还是 WPF?
似乎有两种方法:
- 有多个窗口。这是通常的方法,通常允许用户同时使用多个窗口是有意义的,但这可能不是必需的/不希望的。使用 ShowDialog() 而不是 Show() 是制作第二个 Window Modal 的常用方法。
- 只有一个窗口,但上面有一个 TabControl。隐藏选项卡并以编程方式切换它们。这接近于“一个窗口,多个屏幕”的行为,但由于您在同一个 Form 类中拥有所有控件,它自然会变得混乱(尽管有人可能会争辩说这会强制对控件进行正确命名。另外,可以推荐使用部分类和每个屏幕一个 .cs)
不知道有没有更好的办法?本质上是说“看,我不关心边框样式/图标或主菜单条之类的东西。我想要的只是将这个屏幕渲染到这个区域”。有点像 ASP.net 母版页,其中实际页面仅定义呈现为占位符的内容。
是否有一些适当的机制来做这样的事情?
或者整个方法有什么问题?
【问题讨论】: