WinForms多窗体布局

3

好奇,是否有可能在没有两个项目的情况下拥有两个应用程序布局?

比如,为台式机/笔记本电脑设置一个布局。 然后为平板电脑设置一个布局?

我知道 WinForms 只有一个设计文件,这可能就回答了我的问题,但我很好奇是否需要为平板电脑布局重新创建一个全新的程序,即使它具有与桌面相同的所有功能和相同的控件,只是外观略有不同。

2个回答

3
我会將核心功能放在一個庫程序集(DLL)中,並編寫兩個UI應用程式,這些應用程式都引用同一個核心程序集。

3
考虑到在这种情况下,只有部分用户界面有所不同,而另一部分是相同的,我建议创建一些用户控件并将它们放入库中,以避免重复相关部分。 - Servy
@Servy同意。或者可能是一个CommonUI库,而不会像我倾向于那样过度分离库 :-) - Jonathon Reinhart
这实际上是我们现在使用的方法,绝大多数控件都是独立的,并且根据需要进行引用。所以,这将是我们走的道路。感谢您提供的信息。 - zackrspv

2
您可以编写自己的自定义LayoutEngine来处理布局。这样,您就可以将所有与布局有关的任务留给您的引擎,并专注于代码。
以下是Microsoft的一篇文章,介绍如何实现这一点(附有示例源代码):
http://msdn.microsoft.com/en-us/library/ms973821.aspx 从文章中可以得知:
所有Windows Forms控件都提供了一个布局事件(Layout event),以及其他一些通知,使得编写复杂的布局代码成为可能。为了方便编写可重用的布局引擎,我们可以提供一个基本框架。

这是一些非常有用的信息,对于我的新项目来说,我一定会使用它。但对于我的现有项目来说,这是一个相当庞大的解决方案,花费那么多时间重新设计布局并不划算。但是,对于我们包含的新程序,我会这样做。感谢您提供这些信息! - zackrspv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接