代码之家  ›  专栏  ›  技术社区  ›  Jeff

在VisualStudio中创建GUI的良好资源

  •  5
  • Jeff  · 技术社区  · 17 年前

    我越来越多地使用桌面应用程序,而我的GUI很糟糕。我熟悉GUI设计的基础知识,但在实践中遇到困难。

    我要找的是好的(或者至少是像样的)建筑指南( 不是设计! )VisualStudio中的GUI。

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

    6 回复  |  直到 16 年前
        1
  •  3
  •   lillicoder    16 年前

    如果你已经规划好了你的设计,那么实现它应该是容易的部分。对于WinForms,它实际上是拖放(并设置一些属性,例如用于停靠和锚定)。

    我发现真正有助于实现的技巧是在纸上完全模拟接口。我指的是一切:每个菜单、按钮、标签、网格等等都应该画出来。在此之后,只需将控件拖到窗体上,将其重命名为合理的名称,并确保窗口大小不会使控件错位。

    如果您在创建GUI时没有一个完全实现的设计,那么您将有一段非常艰难的时间,因为您仍然要做出设计决策,这将阻碍构建。

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

        2
  •  2
  •   hannson    16 年前

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

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

    我对GUI代码的理解通常是这样的:

    1. 创建一个粗略的和GUI的设计师与VS从Web设计来,你可以考虑这个MS FrontPage在WYSIWYG模式-没有造型或特定的结构。只是应用程序、菜单栏、工具栏、状态栏等的粗略视觉结构,没有自定义控件。
    2. 查看代码并将其组织为几个类
    3. 返回设计器并将控件添加到组织的类中
    4. 查看并组织代码。

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

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

        3
  •  2
  •   Community Mohan Dere    10 年前

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

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

    使用VS WinForms designer,以下是一些改善您体验的提示:

    • 学习如何使用 Anchor property . 与Dock属性一起学习 经验胜过一切。

    • 在designer中时,始终具有 Document Outline 打开视图,其中显示 非常有用,尤其是在重命名时 控制。

        4
  •  0
  •   CLR    17 年前

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

    此外,关于“值得努力使用VS2K5的“设计”视图构建GUI”的问题?我会说这是一个肯定的回答;不,我之所以这样说,是因为如果你过于依赖设计师,不管是IDE,你都会错过底层&肮脏的东西——真正教会你发生了什么的东西。有些事情必须在设计时或运行时通过代码来实现,以获得最佳结果,这样才能真正了解引擎盖下发生的事情!

    桂英快乐!

        5
  •  -1
  •   Harald Scheirich    17 年前

    我不得不说,我不同意克劳特的观点,创建好的用户界面不一定与编码有任何关系。 SmashingMagazine 有大量用于UI设计的资源,尽管其中大多数都是webcentric,但无论您是通过编码将UI放在表单编辑器中还是放在网页上,一般原则仍然适用。

    对于我来说,GUI设计器一直是一种将显示与内容分开的方法,如果您开始编写大量代码来影响UI中的简单效果,那么使用它的设计器的GUI的良好实现将支持这一点。Mac上的Interface Builder是我使用过的所有界面生成器中最好的一个(其中包括Java Swing、Windows窗体)。

    This 这篇文章在某种程度上倾向于打印,但所提到的大多数方面都是通用的,并且确实适用于屏幕和UI设计。

    前者可以通过试着设身处地为用户着想来解决。查看用户正在执行的任务,以及他们如何使用您的软件完成任务。它是让用户更容易完成他们的工作,还是在阻碍工作流程的道路上设置了路障。

        6
  •  -1
  •   ccalboni    16 年前

    我也很擅长设计用户界面。我老是把事情搞砸。。不管怎样,我正在努力提高。我的新方法很简单:复制。有很多好的用户界面,我们不需要重新发明轮子。一个好的副作用是用户体验的连续性。

    拿一个你的用户认为是Familial的程序,试着模仿它。例如,我认为很多应用程序都可以通过跟踪MS Outlook用户界面来完成。或者,如果你想做一些新的事情,看看大公司都做些什么:比如,试试谷歌的Picasa(桌面)。或任何带有功能区栏的程序。如果你有时间的话,看看MS的 Vista User Experience Interaction Guidelines (PDF可供下载)。有很多小的解决方案,比如“保存-取消”按钮的放置位置以及顺序。。这是一件愚蠢的事情,但却有很大的不同。

    如果你有一项任务要完成,并且想要一个关于如何呈现它的起点,那么这是一个很好的资源 Quince from Infragistic . 它有很多“像这样做”的提示和示例屏幕截图。

    Harald提到的另一个好资源是 SmashingMagazine :你可以订阅他们的订阅源,桌面设计确实每天都在向网络设计靠拢。

    最后是图标。SmashingMagazine经常提供有关图标的提示,你可以在网站上找到许多收藏 IconFactory .