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

2023-05-16

从事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效果如下所示。 

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • Qt QTreeWidget节点的添加+双击响应+删除详解

    QTreeWidget是实现树形结构的类 xff0c 在很多软件中都可以看到类似树形结构的界面 我做的一个示例如下图 xff0c 用来处理图像 xff0c 最顶层节点是图像的路径名 xff0c 子节点是图像的各个波段 xff0c 双击各个波
  • 【转】如何使用分区助手完美迁移系统到SSD固态硬盘?

    自从SSD固态硬盘出世以来 xff0c 一直都被持续关注着 xff0c SSD的性能优势让无数用户起了将操作系统迁移到SSD的心思 xff0c 直接后果就是让无数机械硬盘为止黯然退场 xff0c 很多软件都可以做到系统迁移 xff0c 然而
  • Python中import的使用

    python中的import语句是用来导入模块的 xff0c 在python模块库中有着大量的模块可供使用 xff0c 要想使用这些文件需要用import语句把指定模块导入到当前程序中 import语句的作用 import语句作用就是用来导
  • android studio 安卓集成高德地图获取app定位信息

    在网上搜索过大量集成高德地图的方案 xff0c 和测试代码 xff0c 要么就是博主抄来没有测试过的代码 xff0c 要么就是步骤不连续的 xff0c 甚至包裹官网给出的解决方案都是欠缺相关步骤的 xff08 官网截图都不知道多少年前的了
  • Mac操作系统下怎么显示隐藏文件

    方法一 xff1a 第一步 xff1a 打开 终端 应用程序 第二步 xff1a 输入如下命令 xff1a defaults write com apple finder AppleShowAllFiles boolean true kil
  • Linux : brctl not found

    Getting this error message while trying to bring up your newly configured bridge interface on RHEL CentOS Linux You are
  • 查看supervisor启动日志

    2019独角兽企业重金招聘Python工程师标准 gt gt gt tail f var log messages 转载于 https my oschina net u 3371661 blog 3045059
  • 嵌入式就业前景怎么样?嵌入式工作该如何分类?

    随着科技进步 xff0c 嵌入式的出现 xff0c 以及人们对生活质量 xff0c 产品的智能化 xff0c 成本的要求等 xff0c 以及国家对与物联网 电子 科技的扶持 xff0c 大量的电子产品都促使嵌入式的快速发展 嵌入式涵盖了微电
  • 【vivado】ILA调试报错 The debug hub core was not detected 以及 Data read from hw_ila [hw_ila_1] is corrupted...

    报错一 xff1a WARNING Labtools 27 3361 The debug hub core was not detected Resolution 1 Make sure the clock connected to the
  • 面试题:你在项目中遇到哪些问题?

    你在项目中遇到哪些问题 xff1f 因为目前项目采用的是分布式 xff0c 分布式环境下一般采用集群方案 xff0c 所以这就会带来分布式的一些问题 xff0c 比如 xff1a 1 分布式锁 2 分布式session 3 分布式全局id
  • 检查 ubuntu 版本_如何检查Ubuntu版本–快速简便的方法

    检查 ubuntu 版本 In this tutorial we will go over the easiest methods to check Ubuntu version from the terminal You can use
  • hashheap python 实现

    class Node object 34 34 34 the type of class stored in the hashmap in case there are many same heights in the heap maint
  • Cocos Creator 实现大厅+子游戏模式

    大厅 43 子游戏的模式 xff0c 在棋牌类型 教育类型游戏中比较常见 xff0c 通常是安装包里面只有大厅的资源和代码 xff0c 然后子游戏根据需求以热更新的方式下载来提供给玩家 之前一直负责的是cocos2dx lua的开发 xff
  • matlab练习程序(Kruskal最小生成树)

    老物了 xff0c 网上的例子多的数不过来 不过我还是有必要练习一下的 之所以看这个算法是因为最近在看颜色聚合向量时 xff0c 有的论文用到了最小生成树 xff0c 因此我就拿来熟悉一下 Kruskal算法类似于连通分支算法 xff0c
  • Ubuntu18.04创建新的系统用户

    目标 xff1a 1 为测试学习Docker xff0c 在虚拟机OS为18 04里 xff0c 创建一个系统账号 xff0c 账号名称 xff1a docker 2 在 home下有新建username的文件夹 一 建立账号 1 以roo
  • gooreplacer 很好用

    国内上 StackOverflow hackernews 之类的站点会慢 因为页面里有链接指向 google 谷歌 会被墙 于是拖累了整个页面的显示 gooreplacer 可以把这些被墙连接替换掉 安装方法的话 xff0c 在浏览器的安装
  • vscod 技巧,自动循环书写li

    ul gt li 10 这是第 个li lt ul gt lt li gt 这是第1个li lt li gt lt li gt 这是第2个li lt li gt lt li gt 这是第3个li lt li gt lt li gt 这是第4
  • Ai challenger 2017 image caption小结

    参加了今年的 ai challenger 的 image caption比赛 xff0c 最终很幸运的获得了第二名 这里小结一下 Pytorch 越来越火了 前五名有三个 pytorch xff0c 两个 tensorflow 关于哪个 l
  • 哥很无奈 今天看到我的host文件是这个样子

    127 0 0 1 www gtxp2 com 这家无良公司在所谓的网维工具内加入了屏蔽我站的信息 xff0c 我们也是不得已做出反击 xff0c 望见者谅解 127 0 0 1 gtxp2 com 封死此无良网站 xff0c B4此站的相
  • [转载] 以下划线开头的变量

    转自 xff1a https blog csdn net Grevi article details 60581354 今天在公司看 GNU ISO C 43 43 Library库中的stl库时 xff0c 偶然间感觉到一个问题 xff0

随机推荐

  • 如果编程语言是武侠

    如果是武功 C紫霞神功要大成需要很长时间 xff0c 威力还行Cpp九阳神功威力巨大Lisp小无相功你可以把它当做任何武功Shell太极拳四两拨千斤PHP打狗棒法不上台面 xff0c 但威力惊人Java八荒六合唯我独尊神功 无敌C 北冥神功
  • 跳转位置-更改目录(CD)PowerShell命令,可让您读懂

    There 39 s a lovely little utility called autojump for nix consoles that makes the 39 cd 39 command very smart More that
  • C#结构体指针的定义及使用详解

    在解析C 结构体指针前 xff0c 必须知道C 结构体是如何定义的 在c 中同样定义该结构体 C 结构体指针之C 结构体的定义 xff1a StructLayout LayoutKind Sequential public struct V
  • Permutation Test 置换检验

    显著性检验通常可以告诉我们一个观测值是否是有效的 xff0c 例如检测两组样本均值差异的假设检验可以告诉我们这两组样本的均值是否相等 xff08 或者那个均值更大 xff09 我们在实验中经常会因为各种问题 xff08 时间 经费 人力 物
  • LaTeX 中使用三级标题

    需要在导言区加入命令 xff1a setcounter secnumdepth 4 而后 xff1a section 一级标题 subsection 二级标题 subsubsection 三级标题
  • 为啥程序员下班后只关显示器从不关电脑?

    阅读本文大概需要 3 分钟 你下班时是不是只将显示器一关 xff0c 揣上手机就走了 xff1f 曾有安保人员晚上来办公室巡查时问 xff0c 为什么这些人不关机就下班呢 xff1f 作为程序员 xff0c 你会心一笑 对方不明白如果关机了
  • 美国 ZIP Code 一览表

    Zip Code 这个是美国的邮政编码 美国目前只有邮政是国营的 其余的产业都不是国营的 今天给大家提供美国的Zip Code的原因是大家在注册国外的账号时 需要提供这个Zip Code 因为一般美国的服务默认是面向美国的 甚至是仅支持美国
  • pytorch .detach() .detach_() 和 .data用于切断反向传播

    参考 xff1a https pytorch cn readthedocs io zh latest package references torch autograd detachsource 当我们再训练网络的时候可能希望保持一部分的网
  • UPX使用教程

    UPX是一个通用可执行文件压缩器 xff0c 由于其具有 xff1a 压缩率高 xff1a 压缩效果优于zip gzip xff1b 解压速度快 xff1a 在奔腾133上即可达到大约10MB 秒 xff1b 压缩的可执行文件没有额外的内存
  • Prestashop--配置到阿里云

    Prestashop版本 xff1a v1 6 阿里云环境 xff1a 前段时间出来的免费虚拟主机 之前没搞过网站 xff0c 所以这一切都是蛮新鲜的 因为没有接触过 xff0c 所以必然要遇到蛮多的坑 xff0c 将遇到的坑 填好的坑都记
  • 名词解释

    payload http中的payload 有效载荷在一个数据包或者其他传输单元中运载的基本必要数据 xff0c 即加载的基本数据 记载着信息的那部分数据 通常在传输数据中 xff0c 为了使数据传输更可靠 xff0c 要把原始数据分批传输
  • ubuntu和debian_Debian Ubuntu“ netstat:未找到命令”错误解决方案和Netstat安装

    ubuntu和debian Ubuntu is most used Linux distributions Canonical provides enterprise support for Ubuntu desktops and serv
  • ListControl双击实现可编辑

    ON NOTIFY 处理 listControl 消息 列表控件的消息映射同样使用ON NOTIFY宏 xff0c 形式如同 xff1a ON NOTIFY wNotifyCode id memberFxn xff0c wNotifyCod
  • 如何在创业公司工作保持激情?试试这六条建议

    在创业公司里 xff0c 创始人都表现出雄心勃勃的状态 同样 xff0c 他们也希望自己的手下能和他们一样对正在开创的事业充满激情 相比于在成熟的大公司工作 xff0c 创业公司的求职赛场遵循的或许是另一套规则 JasonFreedman是
  • linux pts设备,linux 系统tty、pty和pts 的概念及区别

    基本概念 xff1a 1 tty 终端设备的统称 tty一词源于Teletypes xff0c 或者teletypewriters xff0c 原来指的是电传打字机 xff0c 是通过串行线用打印机键盘通过阅读和发送信息的东西 xff0c
  • sonic——可替代Elasticsearch的简单搜索引擎

    简介 近期 xff0c 笔者在github上发现了一个十分好玩的开源项目 sonic sonic项目的介绍十分简单 Fast lightweight amp schema less search backend An alternative
  • 头文件与源文件中都分别存放哪些东西

    在C代码文件中 xff0c 我们经常会看到两类文件 xff1a 一类是 xff1a 34 h 34 文件 一类是 xff1a 34 c 34 文件 34 h 34 文件 xff0c 就是我们常说的头文件 34 c 34 文件 xff0c 就
  • Radmin远程控制软件

    Radmin远程控制软件 日期 xff1a 2015 08 20 作者 xff1a lujl Radmin是一款快速的远程控制软件 xff0c 可以用来远程管理公司或个人计算机来实现远程办公 你可以通过鼠标和键盘来控制远程的电脑 xff0c
  • barefoot公司和Tofino芯片

    https barefootnetworks com 2005年秋季 xff0c Clean State项目已经在斯坦福成立 xff0c 作为项目主管的Nick Mckeown教授和他的学生Martin Casado xff0c 来自伯克利
  • 合理的布局,绚丽的样式,谈谈Winform程序的界面设计

    从事Winform开发很多年了 xff0c 由于项目的需要 xff0c 设计过各种各样的界面效果 一般来说 xff0c 运用传统的界面控件元素 xff0c 合理设计布局 xff0c 能够设计出比较中规中矩的标准界面 xff1b 利用一些换肤