欢迎来到天天文库
浏览记录
ID:39470110
大小:89.50 KB
页数:4页
时间:2019-07-04
《WinForm程序UI规范》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、WinForm程序UI规范1、窗体 我们把UI理解成窗体以及窗体上用户的交互规则。窗体主要包括主界面类型和对话框类型两种。 主界面指应用程序启动后最主要的界面,其生命周期一般与应用程序保持一致。通过菜单或按钮的形式调用其它子界面和执行功能。一般由以下几个部分组成。标题栏,菜单栏,工具栏,目录栏,工作区,信息输出区(栏)。此外很多应用程序中又增加一些漂浮的子窗体以面板的形式附加到主界面中。 对话框一般指应用程序中具有返回结果的窗体。一般表现为模态窗体,包括信息展现部分,信息输入部分和结果选择按钮三部
2、分组成。 此外,UI部分除了主窗体和对话框外还有浮动窗体,托盘菜单等方式与用户交互。1.1、窗体设计原则 不知道如何做界面,就去模仿VisualStudio。程序员不是美工,不可能要求程序员像美工一样用Photoshop为应用程序设计UI窗体,尽管有很多程序员会使用Photoshop,甚至擅长于平面设计,但他们不是专业的,专业的平面设计和程序设计是完全不同的工作。也并非所有的应用程序都需要用专业的平面设计软件做出来的界面。IDE即是如此,IDE一般由操作系统提供的最基本的控件和经过封装的控件来构成,不同的ID
3、E封装的控件外观大致相同。典型的例子是Delphi和VisualStudio.Net。1.2、尺寸比例 主窗体尺寸一般在运行期默认最大化,否则遵循纵横比为4:3,16:9为益。对话框除了和主窗体一样的原则外也有3:4(4:3旋转90度)的纵横比,总之窗体的尺寸只要保证纵横比屏幕一致。当窗体元素太少,比如只有一个文本标签时,可以不遵循该原则,因为保证窗体尺寸纵横比之前首先要确定窗体不能有大范围的空白区域。1.2、窗体控件元素 主窗体一般按菜单栏,工具栏等组成部分分为上中下左右五个分布区(TOP,Cl
4、ient,Bottom,Left,Right,),根据实际需求可能舍去某些分布区。分布区一般由SplitPanel控件分隔,这样可以使用户自行调节各个分布区的尺寸大小。注意处在不同分布区控件的Anchor属性,保证当窗体尺寸因鼠标拖动改变时控件尺寸按照分布原则变化。 下表为控件在不同分布区的Achor属性值。分布区AnchorLeftTop,Left,BottomTopLeft,Top,RightClientTop,Left,Right,BottomBottomLeft,Bottom,RightRightTop,Rig
5、ht,Bottom 对话框窗体布局按照结果选择按钮在窗体上的位置划分为以下三种形式: 第一种窗体一般固定尺寸大小。结果按钮居中,第二种和第三种可以是Sizeable的窗体,结果按钮需要设置Anchor值来保持窗口大小更改后离窗口边框的距离。 注意窗口结果按钮的配对情况,一般是Yes和No,OK和Cancel配对使用,OK和Close也常用。但如过Yes和Cancel配合就不合时宜了。 此外,还应当给对话框指定AcceptButton和CancelButton,AcceptButton是窗体默认的按钮,当
6、按回车键时将代替鼠标点击该按钮,同样点击CancelButton和按Esc键效果是一样的。按钮大小应该用鼠标在窗体设计器上单击产生的默认尺寸,除非按钮上文本太长否则不应该调整按钮的尺寸大小。这样做的好处就是系统中所有按钮大小保持一致。以鼠标拖拽的形式“画”出来的按钮,很难保证每次画的尺寸都一样。1.2、Tab键次序 Tab键次序问题非常容易被忽视,UI开发经常遇到这种问题:本来界面上有若干文本框供用户输入信息,后来因为需求的变更需要增加一个项插入到某个文本框之前,此时问题就随之而来,IDE对输入控件的Tab
7、值不会因为其上下左右排列次序自动生成,而是与输入控件的先后创建次序一致,因此在程序运行时会出现Tab定位输入框“跳格”,这就给用户带来极大的不便,甚至造成错误的输入。由此可见,在UI设计时一定要注意输入控件Tab键次序问题。1.3、快捷键 以下几种情况必须用快捷键操作程序:笔记本电脑没有可能没有外接鼠标,某些用户热衷键使用键盘,专业的操作人员为了提高工作效率不使用键盘。因此菜单和按钮要有快捷键。大部分Winform开发工具中只要设置菜单或按钮的Text属性包含号“&”+字符形式的为本即可。例如:“增加(&A)”在
8、运行期就是“增加(A)”,使用快捷键为“Alt+A”。1.4、右键菜单 右键菜单多用于容器类控件,通常用于对容器控件中包含的选中态元素进行操作,右键菜单一般不包含复选类菜单项,因为右键菜单默认情况下是不可见的。1.7避免重复嵌套面板 不管是GroupBox,Panel,还是TabControl作为容器控件不应该重复嵌套太
此文档下载收益归作者所有