如何使.net Windows Forms项目看起来新鲜?

时间:2020-03-05 18:44:45  来源:igfitidea点击:

我正在从事Visual Studio 2005 vb.net Windows窗体项目,该项目已经存在了好几年。它充满了默认的文本框,标签,下拉菜单,数据网格,日期时间选择器-所有这些都是标准的东西。最终结果是一个非常灰暗,看起来陈旧的项目。

什么是使该项目看起来新鲜和时髦的最佳方法?我不想用所有全新的表单对象重写整个解决方案,但这是可以避免的吗?

解决方案

回答

这取决于现有的"灰色外观"项目在代码方面的结构。例如,数据访问代码是否与数据访问层中的UI分开,业务逻辑是否位于业务逻辑层中?如果是,则清理UI以获得时髦外观应该相对简单。

如果"按钮单击"事件中的所有内容全部存在,那么按照我的拙见,重写是唯一的方法,因为否则尝试使用现有代码库将非常耗时。

干杯

回答

这并不是一个意见的"答案"。

我尝试给几年前创建的WinForms项目添加爵士效果,方法是给窗体提供精美的蓝色渐变背景等,在XP上看起来还不错。但随后在Vista上,它看起来就不合适了。删除任何自定义的绘画并将表格还原为"战舰灰色"使它看起来更好IMHO。

我看到很多应用程序(尤其是来自MS的应用程序)都带有自定义窗口镶边等,它所做的一切都损害了Windows所提供的良好的一致性。

我想我想说的是我们不必太担心使应用程序看起来时尚。如果我们根据SystemColors枚举保留颜色,则Windows可以为我们做到这一点。

回答

我们可以继承所有默认控件,并覆盖它们的外观。诚然,我们将不得不遍历整个项目并将TextBox的所有引用更改为MyTextBox,但是所有默认属性和方法仍然可以使用。如果我们与第三方供应商一起使用,则无法保证同样的效果。这种方法的另一个优点是我们可以一次选择一个控件并执行应用程序的增量升级。

回答

What would be the best approach to making this project look fresh and snazzy?

恕我直言,我们可以做的最好的事情是确保控件在逻辑上是有序的,并且控件之间有足够的间距,并在适当的位置添加组框/标签/等。

如果我们尝试更改默认的配色方案"灰色的海洋",则应用程序最终看起来会很糟糕。

回答

我建议购买一个好的第三方控制库Infragistics和DevExpress,它们只是一对。这些库中的大多数库使我们能够在现有控件的基础上添加新的兼容控件,例如,可以用增强版本替换默认的EditBox。它们还使我们可以访问某些令人眼花new乱的新用户界面,例如功能区,或者人们一直想要的Outlook样式的导航器。

我之所以特别推荐使用这些库之一,是因为它们被设计为相对易于在现有应用程序中使用,我们可以获得支持,社区以及各种升级路径/选项。

缺点:钱。

回答

实际上,我今天只是在整理一个对话。这很大程度上取决于我们拥有的应用程序类型以及所运行的操作系统。当然,这些技巧中的几个技巧对使事情变得有趣起来大有帮助。

  • 确保控件之间没有足够的间距,不要将它们全部塞在一起。空间很吸引人。当我们有更多空间时,也可以尝试以其他方式流动控件。
  • 放入一些新的3D和光泽图像。我们可以在自定义警告对话框上放置一个大的黄色感叹号。用新的替换旧的工具栏按钮。我使用过并且喜欢的两个库是GlyFX和IconExperience。我们也可以找到免费的。理想情况下,让图形艺术家为应用程序执行的特定操作制作一些自定义操作,以在我们使用的常用操作之间进行填充(确保它们一起使用)。这将使其看起来很长的路要走。
  • 尝试使用其他字体。 Tahoma是个好人。通常,默认字体是MS Sans Serif。你可以做得更好。避免使用Times New Roman和Comic Sans。也请避免大胆使用它。通常,我们希望所有字体都相同,并且只保留使用不同的字体来将文本的某些特定部分分开。
  • 将柔和的颜色添加到某些控件。这是一个棘手的问题。我们始终希望使用柔和的颜色,通常不使用任何明亮或者鲜明的颜色,但是这些颜色应该表示某些东西,或者,如果我们具有网格,则可以使用它来显示逻辑分组。这是一个湿滑的斜坡。请注意,用户可能会更改其系统颜色,这将改变颜色外观。理想情况下,为他们提供一些颜色主题或者更改颜色的功能。
  • 与其考虑让人眼花can乱,不如考虑可用性。使最常见的操作过程变得显而易见。 DevExpress的Mark Miller在"用户界面设计科学"上做了精彩的演讲。我实际上有一个视频,也许可以稍作清理就将其发布到网上。
  • 投资一些高质量的第三方控件。替换所有控件可能很麻烦,但是例如,如果使用默认网格,则可以使用DevExpress或者其他组件供应商提供的良好网格来真正解决问题。请注意,不同的供应商对于如何使用其组件有不同的观念,因此将它们换出可能会有些痛苦。从小处开始测试水域,然后尝试进行一些非常复杂的工作,然后再尝试替换所有水域。唯一比丑陋的网格更糟糕的是丑陋的网格与漂亮的网格混合在一起。一致性是黄金!
  • 我们可能还会考虑像Microsoft在Office 2007中那样用功能区控件替换旧的工具栏和菜单。然后每个人都会认为我们真的在郊区!同样,仅替换关键组件和UI元素,而不考虑我们需要改造整个UI。
  • 当然要注意制表符顺序等基础知识。一致性,一致性,一致性。

有些应用程序可以使自己完全焕然一新,而另一些则不能。通常,我们不希望任何花哨的东西被大量使用。

回答

还要检查的另一件事是控件的FlatStyle属性设置为System而不是Standard。

这将确保应用程序将系统默认设置用于单选按钮,标准按钮等。这将使我们所有的应用程序都从Win 2000的扁平外观获得,并根据它们所运行的OS为它们提供XP或者Vista bling。