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

标签 c# .net wpf winforms xaml

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

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

似乎有两种方法:

  • 有多个窗口。这是通常的方法,通常允许用户同时使用多个窗口是有意义的,但这可能不是必需的/不希望的。使用 ShowDialog() 而不是 Show() 是制作第二个窗口模式的常用方法。
  • 只有一个窗口,但上面有一个 TabControl。隐藏选项卡并以编程方式切换它们。这接近于“一个窗口,多个屏幕”的行为,但自然会变得困惑,因为您将所有控件都放在同一个 Form 类中(尽管有人可能会争辩说这会强制对控件进行正确命名。此外,有人可能会建议使用部分类和每个屏幕一个 .cs)

不知道有没有更好的办法?本质上是说“看,我不关心边框样式/图标或主菜单条之类的东西。我想要的只是你将这个屏幕渲染到这个区域”。有点像 ASP.net 母版页,其中实际页面仅定义呈现到占位符中的内容。

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

还是整个方法有问题?

最佳答案

一种方法是将每个屏幕实现为一个用户控件,并根据需要在主窗口中动态加载和卸载这些控件。我已经在 Windows 移动应用程序中使用了这种方法,并且效果很好。

关于c# - 在应用程序中实现多个屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1596662/

相关文章:

c# - 如何使用Autofac在非引用项目中注册组件

C#教程写小工具

c# - Google Calendar API 和 C# - 403 Forbidden

c# - 对具有各种数据类型的委托(delegate)进行排序

c# - 使用 Dependency Property 传递回调方法

c# - GPUImage 和 Monotouch 绑定(bind)或替代方案

C# 生成新任务

c# - 将样式添加到 GridViewColumnHeader 后,不再允许调整 GridView 列的大小

wpf - 如何将绑定(bind)错误转化为运行时异常?

c# - 在C#中对应用程序的UI进行完全改写后,现有按钮及其功能停止工作