在Visual Studio中创建GUI的良好资源

时间:2009-07-29 14:17:56

标签: c# visual-studio user-interface

我正在越来越多地使用桌面应用程序和我的GUI SUCK。我熟悉GUI设计的基础知识,但我很难将它们付诸实践。

我正在寻找的是在Visual Studio中构建(不设计!)GUI的好(或至少是不错的)指南。

如果失败了(我没有通过常规来源找到太多内容),我不得不问:是否有可能/值得用VS2K5的“设计”视图构建GUI?这就是我一直在使用的东西,因为我是一个视觉人。

具体来说,我正在寻找'坚果&实施完整设计的螺栓

如果需要,我并不反对安装额外的工具,但如果可能的话,我倾向于坚持通过安装VS2k5获得的东西。

6 个答案:

答案 0 :(得分:3)

如果您的设计已经布局并进行了规划,那么实施它应该很容易。使用WinForms,它实际上是拖放(并设置一些属性,例如对接和锚定)。

我发现真正有助于实现的技巧是完全彻底地模仿纸上的界面。我的意思是一切:每个菜单,按钮,标签,网格等都应该勾勒出来。在那之后,只需将控件拖到窗体上,将它们重命名为合理的东西,并确保窗口大小调整不会使控件偏离原位。

如果您在创建GUI时没有完全实现的设计,那么您将面临非常艰难的时期,因为您仍然会做出会妨碍构建的设计决策。

编辑:如果您愿意付费,http://www.learnvisualstudio.net/有几个关于为基本应用程序制作简单GUI的主题视频,通常面向特定控件(DataGridView,ListView等)。

答案 1 :(得分:2)

当你看一个成功的软件时,它看起来如此简单,至少在理论上如此。 GUI代码的复杂性可能被极度低估,有时在设计阶段会被忽略,因为它被认为是微不足道的。

我不确定您是在询问WinForms教程,还是具体说明如何以一种让您保持理智的方式组织和构建代码,但无论如何Jeremy Miller has a good collection of tips on how to design the GUI code structure。 (注意:这是关于GUI代码结构,而不是WinForms或可用性设计)。

我对GUI代码的看法通常是这个过程:

  1. 使用VS中的Designer创建一个粗略而又难看的GUI。来自网页设计,您可以在WYSIWYG模式下考虑此MS Frontpage - 没有样式或特定结构。只是应用程序的粗略视觉结构,菜单栏,工具栏,状态栏等。没有自定义控件。
  2. 查看代码并将其组织成几个类
  3. 返回Designer并将控件添加到有组织的类
  4. 查看代码并进行整理。
  5. 冲洗,起泡,重复。
  6. 当我的代码结构完成时,我会进入极端细节模式,在那里我手动编码值,以便与GUI形成对比度。

    无论如何,我不太确定你的问题是什么,但我希望这会有所帮助。如果我误解了你,请告诉我。

答案 2 :(得分:2)

WinForms 的Visual Studio设计器效果非常好。我在创建WinForms应用程序时一直使用它。另一种方法是在代码中定义UI元素,这非常痛苦。

OTOH,在我看来,VS设计师对 WPF WebForms (ASP.NET)的体验并不像WinForms那么好。幸运的是,对于WPF和WebForms应用程序,如果您不喜欢设计器,您至少可以回退到使用声明性标记,这比在代码中定义UI元素要好得多(遗憾的是WinForms没有声明性标记语言)。

使用VS WinForms设计器,以下是一些改善体验的技巧:

  • 了解如何使用Anchor property。 与Dock属性一起学习 可能改进了我的WinForms设计 经验最重要。

  • 在设计师时,总是有 Document Outline查看打开,显示 你的控制层次结构 在树视图中形成......真的 很有帮助,尤其是在重命名时 控件。

答案 3 :(得分:0)

我几乎没有时间真正挖掘多汁的链接,但我相信你的一点点挖掘将为你提供一些最佳实践信息。它可能与VS2k5中的表单设计器没有直接关系,但无论哪种方式都有用。我并不是说你应该成为一名可用性大师,但他们绝对值得一看。

另外,关于“值得用VS2K5的'设计'视图构建GUI的努力”?我会说那是一个肯定的&没有。我只是这样说,如果你过分依赖设计师,无论是什么IDE,你都会错过这个问题。肮脏的东西 - 真正教会你发生了什么的东西。您必须在设计时或运行时通过代码执行某些操作才能获得最佳结果,因此真正了解引擎盖下的内容并不会有什么坏处!

快乐的GUI'ing!

答案 4 :(得分:-1)

我不得不说我不同意croutle,创建好的UI并不一定与编码有关。 SmashingMagazine有一个用于UI设计的大量资源目录,虽然大多数都是非常常规的,但无论您是通过编码还是在网页上将UI放在窗体编辑器中,一般原则仍然适用。

对我来说,GUI设计师一直是一种将内容与内容分开的方法,如果你开始不得不编写大量代码来影响UI中的简单效果,那么GUI的良好实现就会得到支持。线开始模糊。 Mac上的Interface Builder是我使用过的最好的(其中包括Java Swing,Windows Forms)。

问题是交互是否很糟糕或看起来很糟糕,除非你是一个好的艺术家,你对后者的关注并不是很多,但要坚持到最低限度。即使对于非艺术家类型,也可以学习极简主义的科学(例如,在常规网格上布置所有内容)。 This部分以某种方式适合打印,但提到的大多数方面都是通用的,并且适用于屏幕和UI设计。

前者可以通过尝试将自己置于用户鞋中来解决。查看用户正在执行的任务以及他们如何使用您的软件完成该任务。它是否使用户更容易完成工作,或者是否会在阻碍工作流程的路径中抛出障碍。

答案 5 :(得分:-1)

我也很擅长设计用户界面。我一直在搞乱事情......无论如何,我正在努力改进。我的新方法很简单:复制。周围有很多良好的用户界面,我们不需要重新发明轮子。良好的副作用是我们用户体验的连续性。

使用您的用户找到家庭的程序并尝试模仿它。我认为很多应用程序都可以通过跟踪MS Outlook UI来完成。或者,如果你想做一些新的事情,看看大人们做了什么:例如,尝试谷歌的Picasa(桌面)。或任何带有功能区栏的程序。如果您有时间,请查看MS'Vista User Experience Interaction Guidelines(PDF可供下载)。有很多小的解决方案,比如在哪里放置“保存 - 取消”按钮以及按什么顺序......这是一个愚蠢的事情,但会产生很大的不同。

如果您要完成任务并想要了解如何呈现它的起点,那么这是一个很好的资源Quince from Infragistic。它有很多“做这样的”提示和示例截图。

Harald提到的另一个好资源是SmashingMagazine:您可以订阅他们的Feed,桌面设计确实每天都更接近网络对象。

最后,图标。 SmashingMagazine经常提供有关图标的提示,您可以在IconFactory上找到许多集合。

HTH!