【问题标题】:Designing a new UI for a legacy WinForms MDI application为旧版 WinForms MDI 应用程序设计新 UI
【发布时间】:2010-09-08 05:00:50
【问题描述】:
我正在努力将使用 C# 和 WinForms 创建的客户端/服务器应用程序转移到 SOA/WPF/Silverlight 世界中。最大的障碍之一是 UI 的设计。我当前的 UI 是 MDI 驱动的,用户严重依赖子窗口,同时打开许多子窗口并在它们之间来回切换。
在无 MDI 的环境中重新创建 UI 功能的最佳方法是什么? (我不想在 WPF 中自己创建 MDI 功能)。标签?切换不同控件的列表面板?
【问题讨论】:
标签:
c#
wpf
silverlight
user-interface
【解决方案1】:
看看37signals,看看他们的 Web UI 有多棒(主要是 HTML + AJAX)。这是一个很好的 web 应用程序的例子。要记住的一件事是确保您不会破坏网络范式。如果用户想并排看到两件东西,他们应该能够复制窗口并让网络浏览器进行窗口化。
对于 WPF,有很多新的可视化范例。您可以在各种控制工具包提供商的网站上找到一些示例:Xceed、Telerik、Infragistics。他们有演示程序,可以帮助您在应用程序中组织屏幕。
在 WPF 中开发复杂的复合应用程序时,您还可以从 Patterns and Practices Prism 站点开始。这是一组 InProgress 实践,用于在 WPF 中规划和开发复杂的复合(智能客户端样式)应用程序。
【解决方案2】:
我认为答案实际上取决于您的用户——我会设置一些具有多种范式的原型,并让他们提供一些输入。您要做的最后一件事是在没有任何最终用户输入的情况下引入新的 UI 范例。
选项卡现在非常流行,但不允许并排查看,因此如果需要,您可能需要更多的 Outlook 风格设置,可以激活、隐藏多个面板并调整大小。
您可能想要做的一件事是将您的应用程序编码为复合 UI,其中每个视图都独立于其容器(无论是子窗口、选项卡或手风琴等)构建,并且只是“丢弃在”设计师。这将保护您免受用户将来改变对导航范式的看法。
【解决方案3】:
多个顶级窗口易于实现并具有 MDI 的所有优点 - 这是 MS 为新版 Office 选择的内容