How to implement a Rich UI in WinForms?
我想为我的桌面应用程序创建一个丰富的 UI,但是 WPF 对我的需求来说太复杂了,我更喜欢使用 WinForms(如果可能的话)。在我看来,有两种选择:
WinForms 和大量的自定义控件,包括自定义绘图:这会给我提供细粒度的控制,但是,UI 编码太硬,并且会使重新设计(甚至是初始实现)成为一件漫长而乏味的事情。
WebBrowser 控件中的 HTML5 UI:我非常倾向于这个选项,因为界面可以很容易地(重新)设计,并且实现需要的代码更改最少。话虽如此,我没有这方面的经验,也不知道我可能遇到的潜在问题。
你们怎么看?还有其他建议吗?我还没有完全排除 WPF,如果 WinForms 出了,那么 WPF vs WebBrowser Control 怎么样?
对于桌面应用程序,WPF 无疑是最佳选择,因为它提供了使用
以桌面版 Skype 为例。据我所知,它实际上是一个基于 XAML 的桌面应用程序 (WPF),这意味着设计丰富、漂亮的应用程序当然是可能的,因为它已经完成了。 Visual Studio 也是基于 XAML 的应用程序的一个很好的例子。
在您的情况下,我建议您在定位桌面时使用 WPF 路线。已经创建了许多非常棒的框架来帮助您的应用程序看起来更棒,例如 MahApps 和 MUI,它们都试图实现 Windows 8 应用程序的现代感。
这些框架的本质是实现 Styles 和 ControlTemplates 来覆盖现有控件的默认样式和模板。我确定加入了新的控件,但本质仍然保持不变。
以
1 2 3 4 5 6 7 8 9 10 11 12 13 | <Style TargetType="Button"> <Setter Property="Background" Value="Red"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Button"> <Border BorderThickness="0" Background="{TemplateBinding Background}"> <ContentPresenter Margin="20,10"/> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style> |
在这个非常简单的示例中,我只是更改了默认的
我听说过使用 WPF 构建的游戏,显然不是 AAA 游戏,而是相对简单的桌面游戏,但是它们使用与我提到的相同的原则来设计控件以满足他们的需求。
一旦你了解了如何重新设计控件,那么可能性实际上是无穷无尽的,如果你正在寻找设计灵感,那就看看 dribbble。