利用WPF建立自适应窗口大小布局的WinForm;编写WinForm程序时,都会碰到一个问题;有没有这样的手段;还记得一些DirectX的游戏程序吗?当设定为固;答案是肯定的;利用WPF中的ViewBox容器空间;先看看下面的窗口的Xaml文件; 编写WinForm程序时,都会碰到一个问题。就是WinForm窗口在不同分辨率下的大小问题。举例说明,你编写的WinForm窗口在1024×768下是合适、匀称的。不过,如果用户的计算机的分辨率为1400×900时,你的WinForm窗口就显得偏小,其中的字体和控件都显得偏小。如果用户的分辨率为640×480,那你的窗口就远远超过它的屏幕的大小。如何解决这个问题?一般的WinForm程序都会这样操作:程序启动——》获取屏幕分辨率——》调整窗体的大小——》调整各个控件大小及位置——》调整各个控件的字体。这样操作比较繁琐,并且要考虑到各种分辨率的情况。这样一来,如果WinForm窗口上有若干控件,调整是一件很痛苦的事。 有没有这样的手段。我只要调整WinForm窗口的大小,其中的各个控件大小(包括字体)自动的等比例缩放? 还记得一些DirectX的游戏程序吗?当设定为固定的分辨率时(比如800×60 0),在全屏的时候,他都会自动缩放。WinForm有这样的手段吗? 答案是肯定的。在WPF中就能很简单的实现该功能。 利用WPF中的ViewBox容器空间。ViewBox是一个容器空间,它会自动缩放容器中的子空间以填满自身,同时它只能有一个子控件。不过,我们可以把C anvas控件作为ViewBox控件的子控件。然后在Canvas控件中布局其他的控件。 先看看下面的窗口的Xaml文件 xmlns="https://www.sodocs.net/doc/3c10497033.html,/winfx/2006/xaml/presentation" xmlns:x=" https://www.sodocs.net/doc/3c10497033.html,/winfx/2006/xaml" Title="WPFTest" mc:Ignorable="d" xmlns:d="https://www.sodocs.net/doc/3c10497033.html,/expression/blend/2008" xmlns:mc="https://www.sodocs.net/doc/3c10497033.html,/markup-compatibility/2006" Siz eToContent="Manual" Width="400" Height="300"> 先简单的说明这个XAML文件 最外面的是Window容器,设置了标题(WPFTest)和大小(400×300),它也只能有一个子控件。 Window的子控件是DockPanel容器,是自动停靠容器控件。设置 LastChildFill="True",表示最后一个子控件自动填充剩余的空间。没有设置大小,默认大小是Window的客户区大小。 DockPanel控件有三个子控件 1、Menu控件:菜单控件,自动停靠在容器的顶端 2、StatusBar控件:状态栏控件,自动停靠在容器的底部 3、ViewBox控件:容器控件,自动填充DockPanel剩余的控件。没有设置大小,为填充的大小。设置填充的模式为Fill,表示子控件填充自身的容器的大小。在ViewBox中放置了一个Canvas控件,设置了大小(注:一定要设置大小,否则默认时会产生各种不可思议的效果),设置了背景色。在Canvas中放置了一个Button控件。只是示例,Canvas中还能放置其他的控件 在Window的代码中输入如下的代码 Public Class Window1 Private _I As Integer Private Sub Window1_SizeChanged(ByVal sender As Object, ByVal e As System.Windows.SizeChangedEventArgs) Handles Me.SizeChanged _I += 1 Me.S1.Content = "窗口宽度:" & Me.Width Me.S2.Content = "内容宽度:" & Me.Viewbox1.Width Me.S3.Content = "按钮宽度:" & Me.Button1.Width & ";刷新次数:" & _I End Sub End Class 启动后是如下的效果 可以看出窗口的宽度是400,由于ViewBox没有设置宽度,故显示非数字,按钮的宽度是87 拖动右下角,调整Window的大小。如下图所示 和上图的比较,Window的大小发生了变化。ViewBox中的子控件也自动的拉伸了。这个从Button的外观能很明显的感受到。更神奇的是,无论我怎么调整Window的大小,Button的外观也随着Window的大小而改变,不过,在内部的逻辑中,Button的宽度始终是87,始终没有发生变化。 另,由于Menu和StatusBar不在ViewBox内。故这两个控件没有缩放,还是原始的大小 这给我们带来了极大的便利。无论window被调整到如何,在内部逻辑中,ViewBox中的子控件Canvas的逻辑大小始终是300×200。我们不需要再为调整后的大小设计额外的代码。 实际上,我猜测。ViewBox的显示机制是,先在内存中把按照逻辑大小把子控件显示出来,然后等比例的缩放显示到ViewBox的客户区。 回到开始的话题。编写的WinForm窗口如何应对不同的分辨率? 在WPF中,将所有的客户控件放在Canvas中再放在ViewBox控件中,利用ViewBox的特性来实现自动的缩放。流程就变成了:程序启动——》获取屏幕分辨率——》 调整窗体 的大小。其余控件的缩放就交给ViewBox控件吧。而且由于逻辑的大小没有发生变化,你还不必要再额外添加代码。 网上ViewBox控件介绍的比较少,用ViewBox来实现自适应窗体的大小确是独辟蹊 《.NET WinForm编程》课程设计题目:智能QA系统的设计与实现 学院/ 系软件学院 专业信息管理与信息系统专业(日英强化)年级 2009级 学号 00988**** 作者姓名 **** 2012年 7月 5日 本次课程设计题目为智能QA系统的设计与实现,首先介绍了QA技术的现状,然后提出一个基于QA的数字信息化领域的架构,并对相关关键技术进行了讨论,最后说明了QA在数字信息化领域的应用前景。 本系统由三个模块组成,QA管理模块、答案管理模块和信息查询模块。QA管理模块包括信息的新增,修改,删除。答案管理模块实现了答案的基本操作,信息查询模块要求在输入查询条件后,会根据一定的逻辑输出答案。由于各模块的分开及进入系统前验证用户身份,也加强了各种信息的安全性及保密性。 根据系统所需功能,决定以Windows XP为开发平台,采用SQL Server 2005做后台数据库,选择功能强大的Visual Studio 2008为开发工具,利用软件工程思想和方法,总体上用结构化生命周期法进行系统分析和设计,采用快速原型法来实现,系统本系统界面友好,与目前市场上的主流游戏软件大体一致,而且操作更加简单,使用方式和微软各种软件(Windows、Office)基本相同,减少了用户学习、使用本游戏系统的额外负担。本文通过系统概述、系统分析、系统设计、系统实施、开发总结五章,详细的说明了系统的开发过程,最后并对整个开发过程进行了总结。 该系统使用了功能强大的.NET WinForm开发技术,使用了基于MVC机制的三层架构。操作方便,可维护性强。经过大量的测试,基本符合用户需求。 关键字:智能OA;信息查询;三层架构;C# 实验一:WinForm程序设计 实验名称:WINFORM程序设计学时安排: 2课时实验类别:验证型、设计型实验要求:1人1组 一、实验目的和任务 1.掌握创建WinForms应用程序的步骤 2.熟悉WinForms应用程序的控件 二、注意事项和要求 1.第一部分必须要完成,第二部分尽量完成,第三部分供有余力的同学完成; 2.完成后上传项目压缩文件到ftp服务器指定目录,压缩文件名称:学号(后两位)-姓名。 三、实验内容和步骤 1.第一部分:跟着老师练习 1)创建一个名为AppSum的WinForms应用程序,要求用户在文本框中输入2个数字, 然后求2数之和。效果如下图所示: 2.第二部分:自己思考练习 1)创建一个Windows窗体应用程序,允许用户从给定的颜色和字体列表中选择颜色、字 体等设置。用户还可以通过将标准颜色用作基本颜色来创建自定义颜色,并使用滚动 条来增大/减小红色、蓝色和绿色的渐变。选定的颜色应适用于窗体界面。选定的字体 中应显示一个文本示例。效果如下图所示: 2)具体步骤: 新建一个名为AppSettings的Winforms应用程序项目,并将主窗体重命名为FrmSettings。 拖动一个TabControl控件到窗体上,name属性改为tagSettings;选择tagSettings 控件的TabPages属性并单击右边的“…”按钮;出现“TabPage集合编辑器”对 话框。添加两个选项卡页,并将其分别命名为tabColor和tabFont,对应的Text 属性设置为“颜色”和“字体”。 拖动工具箱中的控件来设计窗体,颜色标签页对应的窗体如下: WinForm界面布局 Dock&Anchor Dock和Anchor是水火不容的,同时给控件设置Dock和Anchor属性时后设置的会覆盖前面的设置。 Dock 我初接触WinForm的时候发现控件的Width和Height只能是int,不能设置为百分比,那个时候就想子控件如何跟着父控件而变化呢?父控件变大就变大,而且还填满那个区域。甚至以为这个需要通过代码来解决,如是在SizeChanged事件里…… 后来才发现我要的就是Dock给的,Dock是停靠的意思。Dock属性的类型是DockStyle枚举: 1:public enum DockStyle 2:{ 3:None=0, 4:Top=1, 5:Bottom=2, 6:Left=3, 7:Right=4, 8:Fill=5 9:} 默认是None,当为Left的时,就表示子控件停靠在父控件的左边区域,并把左区域填充满: 上图中的Panel总是会停靠在Form的左边区域,不管如何调整Form的高度,它总是能把左边区域填满。Dock麻烦的地方在于多个控件碰到一起时,比如有两个Panel都设置为Left 该怎么办?我们会发现向父控件的Controls集合中添加子控件,越晚添加具有更高的“优先级”(不知道有没有这个说法,这是我杜撰的)。这里的优先级指的是,子控件“优先级”越高, 越靠近父控件边缘,其他子控件就得避让: [我的见解;通过选中控件,一般是pannel,右键选择置为底层,来决定控件间的优先级] this.Controls.Add(this.panel1); this.Controls.Add(this.panel2); Panel2后添加进去,所以它具有更高的优先级,更靠近Form的边缘。这个规则不仅仅对于Dock都设为Left的有效,对Dock属性不同,但是碰到一起的子控件也适用: 1:this.panel1.Dock=DockStyle.Left; 2:this.panel2.Dock=DockStyle.Left; 3:this.panel3.Dock=DockStyle.Top; 4: 5:this.Controls.Add(this.panel1); 6:this.Controls.Add(this.panel2); 7:this.Controls.Add(this.panel3); panel3的Dock设置为Top,最后添加到Controls集合中,所以具有最高的优先级,其他两个panel都得避让: winform界面设计规范 Winform开发一般遵循的原则 窗体类 型 ..................................................................... .............. 2 尺寸比 例 ..................................................................... .............. 3 窗体控件元 素 ..................................................................... ..... 3 Tab键次 序 ..................................................................... ........... 5 快捷 键 ..................................................................... ................... 5 右键菜 单 ..................................................................... .............. 5 区域排 列 ..................................................................... .............. 6 UI开发异常处理..................................................................... 6 执行动作要提 示 ..................................................................... 7 文字表 达 ..................................................................... 课题:登录界面窗体设计 一、教材分析 《C#程序设计基础教程》第六章的form2登录界面窗体设计里,介绍了登录界面的制作过程。本课强调学生对于C#语言的理解能力以及窗体设计的实际操作能力。按照新课改的教学理念,要注意培养学生的信息素养,培养学生不断探索新知识的能力,所以本课重在培养学生通过已有知识的掌握,自己主动去解决新的问题,只有具备这种能力,才能不断的去探究去创新。在内容上,本课是把前面学习C#程序设计语言实际运用到窗体的触发事件的代码设计中,是对前面所学语言的灵活运用,是前面知识的拓展和延伸;同时对于窗体的各个控件的学习,也为下面更复杂的窗体设计作了一个很好的铺垫,起到承上启下的作用。 二、学情分析 本课的授课对象是五年制大专电子商务专业四年级的学生,他们已经具备了一定的信息素养和动手能力,本学期学生同时还上了另外一门网页制作的课程,网页制作里涉及到一些控件的使用跟本课知识点有些类似,所以学生已经掌握了一些控件的使用方法以及属性的设置方法,对于窗体的简单设计已经有一定基础。但是作为非计算机专业学生,对于控件的触发事件的代码编写还是有不少困难的,所以本课降低难度,学生只要理解相关代码,并进行运用即可,不要求学生一定要自己编写代码,学有余力的同学可以尝试独立编写代码,所以可以进行分层教学,体现了新课标里的让所有的学生都参与到学习中来! 三、教学目标 1、知识与技能 a.掌握Form窗体、Button按钮、Text文本框和Label标签的创建和设置方法以及它们 相关属性的设置方法。 b.掌握Button按钮的Click单击事件的触发方式,并能够理解相关触发事件的代码设计。 c.初步掌握利用各类窗控件制作出简单的窗体设计作品。 2、过程与方法 a.通过教师的知识点讲解以及学生的自主探究和合作学习,使学生掌握新的知识点。 b.通过学生亲手动手实践,自主探索,使学生基本掌握简单窗体设计的方法。 c.采用任务驱动、自主学习、探究学习、合作学习等教学方法,让学生观察、思考、交 流,培养学生自主学习、合作探究的能力。 3、情感态度与价值观 WinForm UI 设计与开发思路 最近一年来一直在做WinForm 相关的系统,对WinForm 的UI 设计有一些想法想和大家讨论(主要是比较忙,所以很多只是设想,还没有开发实例) 关于WinUI ,理想的情形应该是外观比较cool ,能给用户良好的使用体验和印象,同时又兼顾功能强大和容易开发。但基于传统的.NET WindowsForms ,恐怕除了容易开发,在其他方面的指标都很普通了。如果为了界面和功能,则复杂度会提高很多,用大量的GDI+和API 操作,相信会让很多人头痛不已。 以下是一些思路: Custom Control 写代码定制控件 Shell Style 利用Shell Style 工具 Flash Control 利用Flash 控件 Html Control 利用Html 控件 编程来实现各种样式的控件,这个是大家比较熟悉和常用的方法,也是上面提到过的。我们现在集中来讲解一下后面三种。 Windows Shell Style 不知道大家在厌倦了Windows 默认的窗体和菜单后,是不是用过一些改变Windows 外观的软件,例如StarDock 公司的很多产品(WindowBlinds 总知道吧)以及TGTSoft 的StyleXP 。 轻松改变Windows程序的外观 事实上微软在Win2000,XP,2003系统上均引入了Visual Style的概念,也就是系统外观主题。它提供了一些API,可以方便地修改Windows窗体和控件的整体外观呈现。所以我们一般在改变Windows的主题后,一般大部分程序的按钮、形状都会跟着改变(在.NET中可能需要将控件的FlatStyle设成System并且EnableVisualStyles()才会有效) 这里要提的是TGTSoft的StyleXP工具,它基于Windows Visual Style架构,同时又有自己的API,此外,它还有其他一些优点,比如它的每种外观样式,全部打包在一个DLL文件中,同时还有相应的工具(StyleBuilder)来制作这些样式DLL。 在安装完StyleXP后,我们可以在"C:\WINDOWS\Resources\Themes\主题名称 \shell"目录中找到该主题的DLL文件。 StyleBuilder让你定制自己的Windows外观 有了这些基础,我们就可以在我们的程序中利用ShellStyle的API来应用这些外观样 Winform开发一般遵循的原则 窗体类型 (2) 尺寸比例 (3) 窗体控件元素 (3) Tab键次序 (5) 快捷键 (5) 右键菜单 (5) 区域排列 (6) UI开发异常处理 (6) 执行动作要提示 (7) 文字表达 (7) 颜色使用恰当,遵循对比原则 (8) 窗体类型 我们把UI理解成窗体以及窗体上用户的交互规则。窗体主要包括主界面类型和对话框类型两种。 主界面指应用程序启动后最主要的界面,其生命周期一般与应用程序保持一致。通过菜单或按钮的形式调用其它子界面和执行功能。一般由以下几个部分组成。标题栏,菜单栏,工具栏,目录栏,工作区,信息输出区(栏)。此外很多应用程序中又增加一些漂浮的子窗体以面板的形式附加到主界面中。 对话框一般指应用程序中具有返回结果的窗体。一般表现为模态窗体,包括信息展现部分,信息输入部分和结果选择按钮三部分组成。此外,UI部分除了主窗体和对话框外还有浮动窗体,托盘菜单等方式与 用户交互。 尺寸比例 主窗体尺寸一般在运行期默认最大化,否则遵循纵横比为4:3,16:9为益。对话框除了和主窗体一样的原则外也有3:4(4:3旋转90度)的纵横比,总之窗体的尺寸只要保证纵横比屏幕一致。 当窗体元素太少,比如只有一个文本标签时,可以不遵循该原则,因为保证窗体尺寸纵横比之前首先要确定窗体不能有大范围的空白区域。 窗体控件元素 主窗体一般按菜单栏,工具栏等组成部分分为上中下左右五个分布区(TOP,Client,Bottom,Left, Right,),根据实际需求可能舍去某些分布区。分布区一般由Split Panel控件分隔,这样可以使用户自行调节各个分布区的尺寸大小。注意处在不同分布区控件的Anchor属性,保证当窗体尺寸因鼠标拖动改变时控件尺寸按照分布原则变化。 下表为控件在不同分布区的Achor属性值。 一份界面规范(c/s),和大家共享(摘录) Posted on 2006-07-04 09:33 东人EP阅读(158) 评论(0)编辑收藏引用所属分类: .NET 在参考了很多资料后,整理出来的一份界面规范(是c/s程序的,但其中的原则部分对任何界面都是具有参考价值的),希望能给大家带来帮助。 其中的图片没有贴上来,因为文字已经足够描述清楚了。 ------------------------------------- 1. 界面规范 1.1. 总体原则 l 以用户为中心。设计由用户控制的界面,而不是界面控制用户。 l 清楚一致的设计。所有界面的风格保持一致,所有具有相同含义的术语保持一致,且易于理解 l 拥有良好的直觉特征。以用户所熟悉的现实世界事务的抽象来给用户暗示和隐喻,来帮助用户能迅速学会软件的使用。 l 较快的响应速度。 l 简单且美观。 1.2. 原则详述 1.2.1. 用户控制 用户界面设计的一个重要原则是用户应该总是感觉在控制软件而不是感觉被软件所控制。 l 操作上假设是用户--而不是计算机或软件--开始动作。用户扮演主动角色,而不是扮演被动角色。在需要自动执行任务时,要以允许用户进行选择或控制它的方式来实现该自动任务。l 提供用户自定义设置。因为用户的技能和喜好各不相同,因此他们必须能够个性化界面的某些方面。Windows为用户提供了对许多这方面的访问。您的软件应该反应不同的系统属性--例如颜色、字体或其他选项的用户设置。 l 采取交互式和易于感应的窗口,尽量避免使用模态对话框,而使用"非模式"辅助窗口。"模式"是一种状态,它排除一般的交互,或者限制用户只能进行特定的交互。当最好使用一个模式或该模式只是可替换的设计时--例如,用于在一个绘图程序中选定一个特定感觉-- 请确保该模式是显然的、可见的,是一个明确的用户选定的结果,并且容易取消。 l 在后台运行长进程时,保持前台式交互。例如,当正在打印一个文档,即使该文档不能被改变,用户也应该可以最小化该窗口。 l 谅解。用户喜欢探索一个界面,并经常从尝试和错误中学习。一个有效的界面允许交互式 界面设计规范 1.引言 1.1 设计说明 本文档是对系统界面设计风格进行描述,而和用户交互的最终界面将会中项目《详细设计说明书》中设计和解释。 1.2 概念和定义 1. 用户界面 又称人机界面,实现用户与计算机之间的通信,以控制计算机或进行用户和计算机之间得数据传送的系统部件。 2. GUI 即图形用户界面,一种可视化得用户界面,它使用图形界面代替文本界面。 开发人员必须选择仔细选择窗体,并且要理解为什么比其他形式的窗体更适用。 3. 主要窗体(Primary Windows) 主要窗体包含了一个应用程序的大部分功能,大多时候它是一个单独的窗体,但在一个MDI风格的应用程序中,父窗体和子窗体都被认为是主要窗体。 1) Single Document Interface (SDI) 一个单独的主要窗体通常包含一个菜单栏、工具栏和状态栏,打开此窗体时应该运 行在当前所有窗体的上面,并且在任务栏提供显示,就像记事本和写字板程序。 2) Multiple Document Interface (MDI) 通常适合有多个任务,或同时管理所有的窗口。例如Microsoft Word,Excel和V isual Basic。 3) Split Document Interface (split SDI或Explorer) 是一个分隔的主要窗体,通常包括菜单栏、工具栏和状态栏。例如资源管理器和 Outlook。 4. 次要窗体(Secondary Windows) 一个次要窗体通常用于为主要窗体提供补充信息和交互作用,界面比较简单。 1) Modal dialog boxes(模态对话框) 2) Modeless dialog boxes(非模态对话框) 3) Property sheet 1.3 用户假定 [https://www.sodocs.net/doc/3c10497033.html,教程]Winform开发中常见界面的DevExpress处理操 作 我们在开发Winform程序的时候,需要经常性的对界面的一些控件进行初始化,或者经常简单的封装,以方便我们在界面设计过程中反复使用。本文主要介绍在我的一些项目中经常性的界面处理操作和代码,以便为大家开发的时候提供必要的参考。 1、选择用户的控件封装操作 在一些系统模块里面,我们需要选择系统人员作为经办人员的操作,如下面几个界面场景所示。 我们注意到,一般在我们选择的时候,界面会弹出一个新的层给我们选择,里面通过列表详细展示相关的信息,还可以支持搜索,非常方便。 当我们完成选择的时候,我们看到界面会只有一个人员名称的显示,不占用额外的地方显示。 这种界面效果是如何实现的呢?下面进行详细的介绍。 1)首先我们定义一个自定义控件,让其继承自XtraUserControl 即可。/// <summary> /// 经办人员、 操作人员的选择控件封装/// </summary> public partial class OperatorSelectControl : XtraUserControl { 2)然后在DevExpress的界面工具箱上拖动一个SearchLookUpEdit 控件到我们新的用户控件OperatorSelectControl 上。 调整好用户界面控件的排版相关属性,就会得到下面的界面所示。 3)在设计视图里面,我们为这个SearchLookUpEdit控件的GridView设置它的显示字段,如下所示,每个字段主要绑定FieldName(属性或者字段)和Caption(显示名称)。 这些必备的处理操作完成后,我们可以通过代码或者设计器把这个控件的显示内容和存储内容进行设定,并绑定它的数据源即可(根据需要调用自己的函数),如下所示。private void OperatorSelectControl_Load(object sender, EventArgs e) { if (!this.DesignMode) { txtOperator.Properties.ValueMember = "ID"; txtOperator.Properties.DisplayMember = "FullName"; txtOperator.Properties.DataSource = WinForm UI设计与开发思路 最近一年来一直在做WinForm相关的系统,对WinForm的UI设计有一些想法想和大家讨论(主要是比较忙,所以很多只是设想,还没有开发实例) 关于WinUI,理想的情形应该是外观比较cool,能给用户良好的使用体验和印象,同时又兼顾功能强大和容易开发。但基于传统的.NET WindowsForms,恐怕除了容易开发,在其他方面的指标都很普通了。如果为了界面和功能,则复杂度会提高很多,用大量的GDI+和API 操作,相信会让很多人头痛不已。 以下是一些思路: 编程来实现各种样式的控件,这个是大家比较熟悉和常用的方法,也是上面提到过的。我们现在集中来讲解一下后面三种。 Windows Shell Style 不知道大家在厌倦了Windows默认的窗体和菜单后,是不是用过一些改变Windows外观的软件,例如StarDock公司的很多产品(WindowBlinds总知道吧)以及TGTSoft的StyleXP。 事实上微软在Win2000,XP,2003系统上均引入了Visual Style的概念,也就是系统外观主题。它提供了一些API,可以方便地修改Windows窗体和控件的整体外观呈现。所以我们一般在改变Windows的主题后,一般大部分程序的按钮、形状都会跟着改变(在.NET中可能需要将控件的FlatStyle设成System并且EnableVisualStyles()才会有效) 这里要提的是TGTSoft的StyleXP工具,它基于Windows Visual Style架构,同时又有自己的API,此外,它还有其他一些优点,比如它的每种外观样式,全部打包在一个DLL文件中,同时还有相应的工具(StyleBuilder)来制作这些样式DLL。 在安装完StyleXP后,我们可以在"C:\WINDOWS\Resources\Themes\主题名称 \shell"目录中找到该主题的DLL文件。 有了这些基础,我们就可以在我们的程序中利用ShellStyle的API来应用这些外观样式,通过加载不同的资源DLL,就可以轻松改变软件的外观。当然这种方式中,你所使用的控件还是传统的Windows控件,所以还是有一定局限性。 至于如何利用ShellStyle的API,CodeProject上有一个不错的例子:Themed Windows XP style Explorer Bar Flash Control 我们知道Flash的出现和广泛流行都是由于Web环境,但Flash发展到今天,其功能已不 界面的排版往往决定你的版面可观度,在一年的工作中总结出了一点自己的经验,不知道别人怎么样弄的,反正这是我原创,希望能够对大家有所帮助。 效果预览: 1、新建Form后放一个容器,可以统一选择GroupBox或者Panel,因为Form要停靠在MDI主窗口上,所以我觉得用GroupBox比价好一点。将GroupBox锚定(ancor)为上下左右。 2、查询条件放在上面,选择一个Panel,命名为pnlTop,Panel锚定为左右上,这样就可以在Panel里面放查询控件。 3、下面放一个Panel,命名为pnlBottom,这个Panel锚定为上下左右。 4、在pnlBttom里面上面放一个Panel,命名为pnlBottomTop,锚定为上下左右,在pnlBottomTop里面放GridView,将它锚定为上下左右。 5、在下面放一个Panel,命名为pnlBottomBottom,将它锚定为下左右,在里面放分页控件,将其锚定为左上。 6、在最上Panel中靠左的控件左上锚定,靠右边的右上锚定,在下层Panel中靠左边的控件锚定为左上,靠右边的锚定为右上。 上面的是两层结构,如果是三层的话则最上层锚定为上左右,中间锚定为左右上下,最下层锚定为下左右。命名的话pnlTop,pnlMiddle,pnlBottom,有多层嵌套的话则类推。 panel与panel之间的距离容易产生1-2个px的偏差,则进行多页面切换时容易产生抖动,很难看的。 解决的办法 一:设定panel的location 二:通过上下左右键调整panel的location,通过shift+上下左右键可以调整panel的size。希望对大家有用。 Winform开发框架主界面设计展示 做了好多年Winform的程序的开发,主窗口的界面设计一般都要求做的更好一些,可以根据不同的系统功能模块进行归类整合,能使客户迅速寻找到相关功能的同时,也能感觉到整体性的美观大方,因此主窗口的界面设计总是会精益求精,力求做到更好用、更美观,这样才能吸引客户使用。目前的主体界面设计,可以使用很多控件进行美化,这样能使得开发者能够迅速开发好美观的界面,也可以使得界面总体性有一个统一、规范的基准。一般推荐使用DevExpress 或者DotNetbar这两款界面控件套件,他们都能设计出类似Office的Ribbon界面,这种界面整体感觉会比较好一些。1、标准的DevExpress样式界面 在我的Winform开发框架中,也分为了传统性界面、DotNetBar样式界面、DevExpress样式界面这三种,根据不同的开发场景进行使用,如果是历史性原因导致,那就根据需要选择,如果是新的程序开发,那么建议采用DevExpress 样式的界面,这种界面样式,经过我这几年的开发应用了解,觉得真的非常棒,非常强大,基于Dev样式的《Winform开发框架》主体界面设计如下所示。 这个主体界面是Ribbon样式的界面,它分为了几个部分,我 从顶部开始到下面进行介绍。 1)、顶部样式选择 DevExpress控件可以将窗体的空间运用到极致,很多细微的地方都可以用起来。在开发的应用程序中,增加这个样式选择,也会使客户觉得这个程序开发也是非常专业的(^_^)。 2)、主程序菜单 在Ribbon样式中,添加这种样式的主程序菜单,比增加一个顶部的MenuBar来的好看,这也是标准的Office程序的Ribbon样式菜单,我们可以在里面添加各种层级的菜单,如下面是一个简单的退出和重登录菜单。 3)、主界面帮助小按钮 主界面的右边可以放置一些小按钮,如在程序中放置一个帮助小按钮,用来给客户提供帮助或者技术支持的网址链接,都是不错的选择。 4)、Ribbon样式分组按钮 在我的Winform开发框架中,通过图文并茂的功能按钮,可 Chip系统规范 界面设计-WinForm(V1.0) 1.总原则 Chip系统界面设计,需要遵循以下原则: 1,一致:命名的一致、大小的一致、操作的一致、逻辑的一致; 2,简约:用简单、向导性、无歧义的文字表示系统的意图; 2.按钮(Button) 1,功能按钮的摆放要将关联性高的摆放在一起,如: 2,任何界面的“退出”操作要摆放在最右侧,下面是不符合逻辑的图例: 3,功能按钮的名称要统一,如查询条件之后的搜索按钮,统一命名“查询”,而不是“搜索”。 4,相同操作的功能按钮,在不同的界面中要有一致的命名、大小、颜色、背景、快捷键等。5,表示新增操作的功能按钮,其文本内容都要是“新建”,代码的命名中要带有New。6,表示编辑操作的功能按钮,其文本内容都要是“编辑”,代码的命名中要带有Edit。 7,表示删除操作的功能按钮,其文本内容都要是“删除”,代码的命名中要带有Del。 8,表示保存操作的功能按钮,其文本内容都要是“保存”,代码的命名中要带有Save。9,表示确认操作的功能按钮,其文本内容都要是“确定”,代码的命名中要带有OK。 3.列表(DataGird或DataGridView) 1,列表的列头要将关联性高的摆放在一起,正确的格式如: 2,列表要有明确的默认排序,如一般按照操作时间倒序,很少有程序要求是按照操作时间升序排列。 3,列头不换行。 4,列头的宽度要根据列的内容自定义,一般情况下,列头的宽度要略宽于单元格平均的宽度,如果列头的文字内容多于单元格,则列宽要超过列头所有文字再加两个汉字宽度。 不可以所有的单元格的内容都紧紧的依靠单元格的分割线,正确的格式如: 不正确的格式如: 5,如果所有列宽小于列表的宽度,列头的最后一列就要撑满整个列头,如: 6,在不同界面中,表达同一业务概念的列头或者文字标签或者文字内容,要有一致的命名,比如所有表述房间类型的地方都叫“房型”。一定不可以出现的情况是,在列表界面中的查询条件中出现的输入框的文字标签内容和查询结果列表中的列头名称不同。 7,任何列表,都应该被一个GroupBox包围,该GroupBox的文本内容要能简约地表示列表的内容,如: 8,默认情况下,列表都是要考虑分页,分页要用系统默认的分页组件,如上图。 9,在客户端中,所有列表的背景都用Info颜色,不要使用系统默认的灰黑色。 10,在查找不到结果时,列表内容以及分页显示数据都要复原或清空。 4.文本输入框和文字标签(TextBox和Label) 1,任何有文本输入框的地方,一定要考虑文本输入框的格式,也一定要校验用户输入的内容,需要校验的是:是否必须输入、长度是否符合约定、内容是否符合格式要求。 2,任何文本输入框的前面,都要摆放一个文字标签,用来概括后面跟着的文本输入框的内容,文字标签中文字的内容后面要有1个英文的冒号,该冒号与文本输入框之间要有2 17L,长见识了,我还没看到过这样写登陆界面的呵呵,谢谢。 form2 f2=new form2(); f2.show(); this.Close 一般这样写的,会把整个程序关闭,原因是因为Form1拥有Main的UI线程,所以关闭导致整个程序关闭。 一般写登陆简单的是 form2 f2=new form2(); f2.show(); this.Hide(); 就是把它隐藏了。但是要记住,当你MainForm关闭的时候不能this.Close()来关闭程序。 应该Application .Exit ()来退出,因为前者没有关闭UI线程,也就是主线程。 贴出我的写法 private void FormStart()//声明一个发开Form2的方法 { Application.Run(new Form2());//运行1个新的程序窗口 } private void button1_Click(object sender, EventArgs e)//form1的按钮点击事件 { Thread thread = new Thread(new ThreadStart(FormStart));//这里可能有人看不懂,ThreadStart方法参数是上面那个方法名,对方法被作为参数了,如果你看过委托就会了,当然这里不是讨论委托。 thread.Start();//定义1个线程;执行FormsStrat函数; this.Close(); } 用到了线程来写。添加引用using System.Threading;就这么简单。很多人不会做系统重新登陆,用这个方法也可以做的。 引言: 谁都希望自己的应用程序能让人留下一个深刻的印象,让自己的程序窗体有一件与众不同的"外衣"是一个好办法。试想:在一大堆的普通窗口中突然跳出一个很酷的界面,一定能让人眼睛一亮进而产生兴趣的。在VB,VC中如何定制可伸缩个性化窗口早就不是什么秘密了,已经有了大量相关的文章进行介绍,无非都是如何调用系统API之类的方法,但是在.Net中调用API却相对比较麻烦,所以使用.Net制作个性化窗体的文章也有一些,一般都是使用透明背景加图片的方式,所以不能移动或者不能任意放大缩小窗体。那有没有不需要调用系统API的方法来实现可伸缩的个性化窗体的办法呢?当然有,.Net Framework提供了一套非常强大的系统类库,我们下面就要做一个使用"纯".Net打造的可伸缩个性化窗体。 我们需要将窗体所有的"皮肤"全部换成我们自己定义的,包括标题栏,边框和系统按纽等,所以我们首先需要定做一套自己的皮肤图形文件。因为窗体是可伸缩的,所以我们不能简单的取一整幅图片来作为窗体皮肤,而是根据需要先将图片切割为不同的部分,一般来说,有以下图示几大部分(红线为切割线): 根据方位,将图片各部分命名为:Bottom_Left,Bottom_Middle,Bottom_Right,Middle_Left,Middle_Right,Top_Left,Top_Middle,Top_Right,SysButton_Min,SysButton_Max,SysButton_Close,SysButton_Restore等。注意,有些图片是可以伸缩的地方,比如Middle_Left,Bottom_Middle等处的图片可以只是一小块,以后需要进行重复贴图。而有些固定大小的图片,比如Bottom_Left,Top_Left等以后只用贴一次,实际应用的时候要注意区分。 采用以上原则,你便可以制作皮肤图片,图示如下: WinForm界面开发之“分页控件” 在程序中,分页总是永远的话题,因为数据总是很多很多,分页展示在程序性能和数据查看感官方面得到很好的平衡,是一种良好的编程习惯和UI设计。 Winform中的分页控件可能没有https://www.sodocs.net/doc/3c10497033.html,世界中的分页控件那么丰富多彩,不过也有不少的分页控件可以采用,各个人的可能都有一些不同的东西,一些好的东西。就我而言,我希望控件能够尽可能的多一些功能,耦合性低一些,例如我不想是基于存储过程的,因为我很多程序需要使用Access作为数据库,一般来说,我还希望有导出Excel数据的功能,还有打印预览功能,由于我的数据源表头,如实体类集合、表格内容绑定的时候,表头是英文的,我需要变为中文的,其他的功能有则更好。本篇介绍我在我的共享软件中大量使用的分页控件,如送水管理系统软件、病人资料管理软件等等,希望大家有兴趣的话,可以一起讨论使用该分页控件。以便整理吸收更多好的特性,共同学习。 先给大家一个总体感觉,这是我在送水软件中的界面展示,红色圈圈部分是分页控件的展示界面。 大家可以看到,除了基本的分页外,还有其他功能,如导出当前页、导出全部页、打印列表、以及相关功能操作的菜单(只要实现了相关的接口,则呈现相同的菜单,另外还有一些小地方,也是很常用关键的地方,就是间隔行的颜色变化,表头的中文化,行提示内容等等,我认为这些分页控件应该做的,特别是表头中文化部分很重要,因为这个分页控件的数据源是基于一般的对象集合(如List 导出Excel是基本的功能,本控件支持当前页导出,全部页导出两种模式,导出的Excel 数据也还是比较好看的,不是一般的格式哦。 控件另外一项功能,也是集实用功能之所成,打印当前列表内容,如下图所示,该内容会保存用户在每个列表数据中的信息,打印不同的表头内容,如下图所示。《.NET-WinForm编程》课程设计-模板
实验1:WinForm程序设计
WinForm界面布局
winform界面设计规范
C#登录界面设计教案
WinForm UI设计与开发思路
winform界面设计规范
Winform设计界面规则(与大家共享)
winform界面风格规范-v1.1
[https://www.sodocs.net/doc/3c10497033.html,教程]Winform开发中常见界面的DevExpress处理操作
WinForm UI设计与开发思路
WinForm界面排版
Winform开发框架主界面设计展示
WinForm界面设计规范
C# winform 登录界面
用C#制作 个性化窗体 winform 界面
WinForm界面开发之“分页控件”