2009-07-29 32 views
5

我正在越来越多地使用桌面应用程序和我的GUI。我熟悉GUI设计的基础知识,但在实践中遇到困难。用于在Visual Studio中创建GUI的良好资源

我在找的是很好的(或至少是体面的)建设指南(不设计!)在Visual Studio中的一个GUI。

做不到这一点(我没有通过通常的来源找到了),我要问:是否有可能/值得建立与VS2K5的“设计”视图中的GUI的努力?这是我一直在使用的,因为我是一个视觉的人。

具体来说,我正在寻找帮助实施完成设计的“坚果&螺栓”

我并不反对,如果需要安装额外的工具,但我的选择是坚持的东西你如果可能,通过VS2k5的香草安装。

+0

你使用的是什么框架? Windows窗体? MFC? WPF? – 2009-07-29 14:26:11

+0

Windows窗体现在,尽管我非常开放使用VS2K5附带的其他东西,并且可以与C#后端一起使用。 – Jeff 2009-07-29 14:37:43

+0

您是否阅读过MVC模型 - 视图 - 控制器设计模式? – kenny 2009-09-09 11:08:03

回答

2

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

OTOH,在我看来,对于WPF的WebForms(ASP.NET)的VS设计师的经验是几乎没有用的WinForms好。幸运的是,对于WPF和WebForms应用程序,如果你不喜欢设计器,至少可以使用声明标记,这比在代码中定义UI元素好很多(不幸的是WinForms没有声明标记语言)。

使用VS的WinForms设计师,这里有一些提示,以改善您的体验:

  • 了解如何使用Anchor property。 与Dock属性 一起学习可能会改进我的WinForms设计 的体验,而不是其他任何事情。

  • 当设计师,总是有 Document Outline视图中打开,显示 您在树视图您 形式的控制层次...真的 乐于助人,重命名 控制时尤其如此。

0

我很少有时间去真正挖掘多汁的联系,但我相信你一个小挖将会给你一些最佳实践信息。它可能与VS2k5中的表单设计者没有直接关系,但两种方式都有用。我并不是说你应该成为一名可用性大师,但他们绝对值得关注。

此外,关于“价值建立与VS2K5的‘设计’视图中的GUI的努力”?我会说这是一个是的&没有。我只是这样说的,如果你过分依赖设计师,无论IDE如何,你都错过了肮脏的东西 - 真正教会你发生什么的东西。在设计时或运行期间,您必须通过代码完成一些事情才能获得最佳结果,所以不用担心真正了解底层的情况!

快乐的GUI!

-1

我不得不说我不同意croutle,创建好的UI并不一定与编码有关。 SmashingMagazine有大量用于UI设计的资源目录,虽然其中大多数都是非常网络化的,但是无论您是通过编码还是通过网页将UI嵌入到Forms编辑器中,通用Prinicple仍然适用。

对于我而言,GUI设计师一直是一种将内容与演示分开的好方法,如果您开始不得不编写大量代码来影响UI中的简单效果,那么GUI的良好实现将支持它该线开始模糊。 Mac上的Interface Builder可以完成所有我用过的功能(其中包括Java Swing,Windows Forms)。

的问题是确实的相互作用吸或做一下吸,除非你是一个好的艺术家没有真的有很多,你可以做后者,但坚持到最低限度。即使对于非艺术家类型,也可以学习极简主义的科学知识(例如,在常规网格上布置所有东西)。 This作品以某种方式适合打印,但大多数提及的方面都是通用的,适用于屏幕和UI设计。

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

3

如果您已经完成了您的设计并进行了计划,那么实施它应该是非常简单的部分。使用WinForms,它确实是拖放(并设置一些属性,例如对接和锚定)。

我发现真正有助于通过实现的技巧是完全和完全地模拟纸上的界面。我的意思是一切:每一个菜单,按钮,标签,网格等都应该勾画出来。之后,只需将控件拖放到表单上,将其重命名为合理的内容,并确保窗口大小不会将控件排除在外。

如果您在创建GUI时没有完全实现的设计,那么您将很难进行设计决策,因为这会妨碍构建。

编辑:如果你愿意支付,http://www.learnvisualstudio.net/有几个视频的基本应用程序,通常面向一个特定的控制(DataGridView,ListView等)的简单图形用户界面的主题。

-1

我也在设计用户界面。我一直在搞东西..无论如何,我试图改善。我的新方法非常简单:复制。周围有很多不错的用户界面,我们不需要重新发明轮子。良好的副作用是我们用户体验的连续性。

以用户发现的程序为基础,尝试模仿它。例如,我认为很多应用程序都可以通过跟踪MS Outlook UI来完成。或者,如果您想做一些新的事情,请看看大佬们的功能:例如,试用Google的Picasa(桌面)。或者带有色带栏的任何程序。如果您有时间,请查看MS'Vista User Experience Interaction Guidelines(PDF可供下载)。有很多小解决方案,比如在哪里放置“保存取消”按钮,以及按照哪个顺序。这是一件愚蠢的事情,但是会产生很大的差异。

一个很好的资源,如果你有一个任务要完成,并想要一个起点如何呈现它​​。它有很多“像这样做”的提示和示例截图。

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

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

HTH!

2

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

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

我的GUI代码起飞处往往是这一过程:

  1. 在VS.设计器创建一个粗糙的fugly GUI从网页设计来看,你可以在所见即所得的模式下考虑这个MS Frontpage - 没有样式或特定的结构。只是应用程序粗糙的视觉结构,菜单栏,工具栏,状态栏等没有自定义控件。
  2. 查看代码,并将其整理成几个类
  3. 回到设计师和控件添加到组织的类
  4. 查看代码,并组织它。
  5. 冲洗,起泡,重复。

当我的代码结构完成后,我进入极端细节模式,在那里我手动编码值以获得像素完美,与GUI不同。

无论如何,我不太清楚你的问题是什么,但我希望这有助于。如果我误解了你,请告诉我。