从事Winform开发很多年了,由于项目的需要,设计过各种各样的界面效果。一般来说,运用传统的界面控件元素,合理设计布局,能够设计出比较中规中矩的标准界面;利用一些换肤的控件或者部分界面组件,能够设计出相对好看一些的界面效果,如以前很盛行的ActiveSkin、IrisSkin和DotNetSkin等,这些能够对传统的界面元素进行换肤,确实比标准灰色的界面控件好看了很多。不过随着界面控件的组件发展,目前一般倾向于是用较为大型的控件组,他们除了提供设计得体的界面控件外,还提供了非常多种绚丽多彩的界面样式供选择,如DotNetBar、netadvantage、DevExpress等大型界面控件组。

无论界面设计如何变化,一般基本原则都是为客户提供直观、易用、体验效果较好的界面效果哦,从Office的发展历程我们也可以看到整体的界面效果趋向,从开始的标准控件到目前的Ribbon窗体,从单色调变化到绚丽多彩的界面样式,都给我们提供很好的界面设计参考,大型的界面组件也是模仿这一趋势。言归正传,我们来谈谈详细一点的东西,目前我趋向于采用一种基于Ribbon样式的界面,以及一种基于传统界面结合OutLook样式的界面设计。

一、基于Ribbon样式的界面

以上的界面样式,是一种比较大气、符合Office界面效果的界面布局,通过把不同的功能块集中在不同的面板上显示,确实简洁、美观很多,本文不重复介绍该界面效果的优劣,我们主要来集中看看下面的另外一种界面效果。

二、基于OutLook样式的界面设计

其实OutLook样式很早就有,也可以在很多公开的控件组中看到,如果仅仅是追求部分的OutLook界面效果,而不是整体性的方案,那么CodeProject上的这款开源Outlook组件,估计是其中的佼佼者(http://www.codeproject.com/Articles/43181/A-Serious-Outlook-Style-Navigation-Pane-Control)。不过由于需求的是整体性效果,而且还要考虑更多控件界面样式的一致性及美观性,因此我们还是基于DevExpress界面组来设计这样的OutLook界面效果,会显得更加美观大方一点。界面效果如下所示。

以上通过把一个系统很多相关的功能模块放到一颗树上进行分类展示,对于一个比较复杂的人力资源管理系统或者其他复杂功能的系统,也是一个比较合理的布局方式,另外OutLook工具条还是可以隐藏起来,节省右边多文档界面的数据展示空间,这样整体还是比较合理及美观的。其中右边的布局,还可以通过SplitContainer方式把它分成多个模块,然后客户想哪个数据显示面板大一点,拖动一下就可以了,这样不至于数据比较多的时候,导致显示布局不好的情况。下面我们来介绍下如何实现以上的界面布局效果。

1、创建一个基于DevExpress.XtraEditors.XtraForm基类的窗体。如下代码所示

public partial class MainForm : DevExpress.XtraEditors.XtraForm{public MainForm(){InitializeComponent();}}

2、在界面设计中,在DevExpress工具箱Navigation & Layout里面拖动添加一个BarManager控件到窗体中,并删除默认的工具栏Tools,并添加一些菜单项和状态条数据。如下所示。

3、添加PanelControl和NavBarControl,添加一些测试功能按钮。

由于我们需要使用MDI多文档界面效果,因此先设置Mainform的IsMdiContainer属性为True。

然后添加一个PanelControl,设置其Dock为Top布局,为该控件ContentImage设置一个背景图片(事先用PS设计好,保存为png格式即可),添加几个小Lable,设置其的图片和文字。

最后拖入一个NavBarControl控件到界面中,设置其Dock为Left布局,通过控件的右键菜单上的“Run Designer"进入设计界面,先随便添加一些NavBarGroup和NavBarItem项目,粗略设置得到界面效果如下所示。

注意,在NavBarcontrol里面,默认是没有一个Panel可以添加一些特殊的控件,如树、按钮等,默认只有BarItem对象可以添加进入。为了在一个NavBarGroup里面添加这样的控件,需要修改NavBarGroup的属性才行,如下所示。

4、添加DockManager和XtraTabbedMdiManager 控件实现多文档布局,其最终将以Tab方式进行展现。

继续在上面的窗体中添加DockManager控件和XTraTabbedMdiManager控件,这两个控件可以实现在右边以Tab方式展现多文档布局,这样对用户操作来说,可以一次性打开多个窗体进行操作,方便很多,也必将美观,是一种常见的布局展现。为了在窗体激活的时候,在顶部显示关闭按钮,其他的不显示,那么需要设置XTraTabbedMdiManager控件的ClosePageButtonShowMode=InActiveTabPageHeader即可实现了。最终Tab效果如下所示。

以上就是我设计的一个系统界面的具体操作流程,其实很多时候,介绍总是很快,摸索总是很慢,这个就是知识积累的效率提升。当然,要设计好一个系统界面,除了考虑界面的布局美观性、还要考虑图标的协调性、还有就是整体的框架,要可以比较好的适应这些布局控件的操作,不能太过臃肿或者难以阅读。

转载于:https://www.cnblogs.com/wuhuacong/archive/2012/05/10/2494957.html

合理的布局,绚丽的样式,谈谈Winform程序的界面设计相关推荐

  1. 谈谈Winform程序的界面设计

    合理的布局,绚丽的样式,谈谈Winform程序的界面设计 从事Winform开发很多年了,由于项目的需要,设计过各种各样的界面效果.一般来说,运用传统的界面控件元素,合理设计布局,能够设计出比较中规中 ...

  2. 视频教程-C#Winform窗体与界面设计-C#

    C#Winform窗体与界面设计 二十多年的企业管理软件开发经历,熟知管理软件的整个开发流程,熟练掌握VFP语言,掌握VB语言,了解JAVA.asp.net.CSS.HTML/HTML5等语言,使用C ...

  3. 浅谈Winform程序的界面布局设计

    DevExpress v20.2完整版下载 DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅.美观且易于使用的应用程序.DevExpress WinF ...

  4. WinForm 程序的界面多语言切换

    下面介绍一种只需对现有代码做较小改动的方法. 在 Visual Studio 的设计视图中,如果在 Properties 窗口中改变了程序的默认界面语言(Language),我们会注意到无论是工程还是 ...

  5. 浅谈:winform界面设计

    现在,客户端设计技术已经越来越完善,基本上已经不存在技术障碍. 因此,与别人做出不一样的产品,可以在界面设计上下功夫.也就是所说的用户体验.用户体验,第一印象,其实就是软件的界面设计,今天主要来说一下 ...

  6. Android Compose 新闻App(四)下拉刷新、复杂数据、网格布局、文字样式

    Compose 新闻App(四)下拉刷新.复杂数据.网格布局.文字样式 前言 正文 一.下拉刷新 ① 添加依赖 ② 使用 ③ 样式更改 二.刷新数据 三.复杂数据 四.复杂列表 ① 更改返回数据 ② ...

  7. vue+elementui实现app布局小米商城,样式美观大方,功能完整

    目录 一.项目效果在线预览 二.效果图 1.首页效果图 2.分类,动态分类+商品数据根据所属分类动态切换 3.购物车,动态添加购物车(增.删.改.查) 4.我的 5.登录注册 6.商品详情 7.搜索( ...

  8. 代码生成工具之Winform查询列表界面生成

    在上面一篇随笔<代码生成工具之界面快速生成>介绍了代码生成工具Database2Sharp的界面生成操作,其中介绍了Web界面(包括列表界面.内容显示.内容编辑界面的生成,另外还介绍了Wi ...

  9. C# WinForm界面设计教程(C# Windows窗体应用程序)

    WinForm 是 Windows Form 的简称,是基于 .NET Framework 平台的客户端(PC软件)开发技术,一般使用 C# 编程.C# WinForm 编程需要创建「Windows窗 ...

最新文章

  1. php pcntl扩展下载,linux下如何安装PHP pcntl 扩展
  2. 2017.4.17------软件测试的艺术+整理以前的摘记
  3. asp实训报告摘要_个人网站实训报告---asp.NET 动态网站设计
  4. python脚本第一行_python脚本第一行如何写
  5. java与eclipse不匹配_【JAVA小白】 用eclipse输入格式不匹配的问题
  6. 我的android手机在哪里打开,USB调试在哪里打开 手机USB调试模式设置大全
  7. 360手机卫士linux版,360手机卫士极速版
  8. VMware vSphere 8 新增功能
  9. php电商开发系统shopnc,shopnc二次开发(一),shopnc二次开发(_PHP教程
  10. Airtest  入门
  11. R语言——如何调用自己写的函数
  12. 粒子群算法 PSO(Particle Swarm Optimization)——原理及实现
  13. 主题医院二Android,主题医院手机版
  14. 三峡风光计算机作业课程,三峡素描+三峡之歌
  15. SQL Server Management Studio(SSMS)无法连接到服务器,及解决方案
  16. 我用计算机最难忘的事,在学校最难忘的一件事作文(精选10篇)
  17. 网页审查元素css乱码,CSDN网页打印乱码重叠解决办法
  18. 华三交换机irf 堆叠配置_H3C S5500-EI IRF堆叠的典型配置
  19. 新生儿不建议吃鱼肝油,这些你知道吗
  20. 记录自己学习GD32F103R 使用fmc的过程

热门文章

  1. 判断一个点是否在矩形内部_高速公路专用矩形泄水管特点及安装注意事项
  2. 每天一道LeetCode-----平面木桶最大容量,以较小的纵坐标为高,横坐标差为底
  3. java做日历怎么对齐日期_如何使用Java日历从日期中减去X天?
  4. linux中fork和exec
  5. #1419 : 后缀数组四·重复旋律4 (重复次数最多的连续字串)
  6. MySQL中变量的定义和变量的赋值使用(转)
  7. Mysql 添加字段 修改字段 删除字段
  8. C++构造函数之委托构造函数
  9. [BUUCTF-pwn]——ciscn_2019_es_2(内涵peak小知识)
  10. php裁剪图片白边,php缩略图填充白边的示例代码