关于c#:为旧版WinForms MDI应用程序设计新的UI

关于c#:为旧版WinForms MDI应用程序设计新的UI

Designing a new UI for a legacy WinForms MDI application

我正在将使用C#和WinForms创建的客户端/服务器应用程序移入SOA / WPF / Silverlight世界。 UI的设计是最大的障碍之一。我当前的用户界面是MDI驱动的,用户非常依赖子窗口,许多子窗口同时打开并在子窗口之间来回切换。

在没有MDI的环境中重新创建UI功能的最佳方法是什么? (我不想在WPF中自己创建MDI功能)。标签?切换不同控件的列表面板?


看看37signals及其Web UI的外观(主要是HTML AJAX)。这是可以正常工作的Web应用程序的一个很好的例子。要记住的一件事是确保您不会破坏Web范例。如果用户希望同时看到两件事,则他们应该能够复制窗口并让Web浏览器执行窗口操作。

对于WPF,有很多新的可视化范例。您可以在网站上找到各种控制工具箱提供程序的示例:Xceed,Telerik,Infragistics。他们提供了演示程序,说明了它们可以帮助您在应用程序中组织屏幕的不同方式。

在WPF中开发复杂的复合应用程序时,您也可以从Patterns and Practices Prism网站开始。这是用于在WPF中计划和开发复杂的复合(智能客户端样式)应用程序的一组进行中的实践。


我认为答案确实取决于您的用户-我将建立一些具有多种范例的原型,并让他们提供一些输入。您要做的最后一件事是在没有任何最终用户输入的情况下引入新的UI范例。

标签现在非常流行,但是不允许并排查看,因此,如果需要这样做,则可能需要更多的Outlook风格的设置,并且可以激活多个面板,隐藏并调整大小。

您可能想做的一件事是将您的应用程序编码为复合UI,其中每个视图都是独立于其容器(子窗口,标签或手风琴等)构建的,只是"放入设计器中"。这将保护您免受将来用户对导航范式改变主意的影响。


多个顶级窗口易于实现,并具有MDI的所有优点-这就是MS为较新版本的Office选择的


您尝试过GOA WinForms吗?


推荐阅读