在Winform里面,很多控件元素都是标准的,如图标、按钮、工具栏等等,所以一般设计标准的Winform界面比较快捷,但是往往这样的界面相对单调一些,特别在界面控件比较少的情况下,我们往往需要加入一些图片、背景什么来衬托一下,看起来图文并茂一些,本文主要介绍,如何在Winfrom里面利用各种控件的特点,设计一个相对比较美观、图文并茂的Winform界面。

1、界面效果分析

在一些场景里面,如一些进销存的系统里面,我们往往把一些相关的模块处理放在一起,如进货、退货、库存调入、调出、产品、库存、盘点等这些信息,就是一个场景里面的内容,有时候可以把它们放在一起,但是如果单纯的放几个按钮,可能会显得比较单调一些,我们为了丰富界面效果,把界面设计效果如下所示。

这个界面虽说不是特别华丽,但是也是比仅仅放几个标准的按钮来的美观一些,而且按钮之间也设置了一些箭头来指示他们的流程或者从属关系,因此在一些场合,我们更倾向使用这种直观、清晰的界面表达方式,同时也增加了一定的美感。

2、界面的设计过程

在上图的界面里面,设计过程也不麻烦,就是首先确定需要在界面上绘制什么,放置那些按钮,规划好这些后,就可以着手做界面的工作了。

我们分析下上面的界面,就是Winform界面上,放置一个背景图片,然后在界面适当的位置上添加对应的图片或者按钮即可,让对应的图标处理单击事件基本上就可以了,比较简单吧,呵呵。

1)绘制背景图片

为了达到最佳的界面效果,但我们不能再Winform界面上绘画,就只有退而求其次,在绘图工具上绘制一些较好的图形作为界面背景了,如可以使用强大万能的Photoshop,也可以使用Word,或者也可以使用其他绘图工具,能抓到老鼠的就是好猫!

我这里喜欢利用一些有现成图元的绘图工具如EDraw Max等等这些来绘制背景,预先留出放置图标按钮的位置,我们绘制一个背景如下所示。

绘制好这些背景,截图出来待用,记住要图片要预留一定的位置,并且具有一定的画布大小,我们想图片按正常方式设为背景即可,这样我们在窗口放大的时候,不至于直接看完图片了,截取出来的图片,左上角预留一定的位置即可。

2)设置窗体背景本增加图片

在我们预先新建的窗体上面,设置它的BackgroundImage背景图片,如下图所示。

上面效果是增加了图片按钮的效果,开始的话,是没有图片按钮的,这些是后来增加上去空白位置的,图标按钮,一般为了好看的效果,传统的Winform可以采用PictureBox,基于DevExpress的,则可以利用LabelControl标签控件的来处理,设置它的图片即可达到很好的效果的。

LabelControl几个设置如下所示。

还有需要设置ImageAlignToText的属性设置为TopCenter,这样图标才能很好的居中显示。

上面的图片是64×64的,一般可以在网站上根据关键字找一些自己喜欢的图标,下面几个图标搜索的网站如下所示。

http://www.iconfinder.com/

http://www.iconpng.com/

http://www.iconlet.com/

http://findicons.com/

http://www.iconseeker.com/

http://www.iconarchive.com/

从上面总能找到一些合适、免费的各种文件类型的图标,我们把它放到合适的场景上就非常棒的了。

背景及图片按钮设置好后,我们就可以处理它的单击事件,可以弹出对应的窗体了,有两种弹出窗体方式,一种是模式对话框,如下代码所示。

        private void btnPurchase_Click(object sender, EventArgs e)
{
FrmPurchase dlg = new FrmPurchase();
dlg.ShowDialog();
}

另一种是,打开放在多文档界面里面显示,如下代码所示。

        private void btnStock_Click(object sender, EventArgs e)
{
ChildWinManagement.LoadMdiForm(Portal.gc.MainDialog, typeof(FrmStock));
}
private void btnProduct_Click(object sender, EventArgs e)
{
ChildWinManagement.LoadMdiForm(Portal.gc.MainDialog, typeof(FrmProduct));
}

最后我们可以得到整体的界面体验效果如下所示。

以上就是图形化界面的设计点滴思路,希望对大家设计界面有所帮助。

如何在Winform界面中设计图文并茂的界面的更多相关文章

  1. C# winform 打开主界面并关闭登录界面

    在winform 界面编程中,我们有时候要在主界面打开之前先显示登录界面,当登录界面用户信息校验正确后才打开主界面,而这时登陆界面也完成使命该功成身退了. 目前有两种方法可实现: 方法1. 隐藏登录界 ...

  2. c# winform编程之多线程ui界面资源修改总结篇【转】

    c# winform编程之多线程ui界面资源修改总结篇 单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello Wor ...

  3. 如何在WinForm中发送HTTP请求

    如何在WinForm中请求发送HTTP 手工发送HTTP请求主要是调用 System.Net的HttpWebResponse方法 手工发送HTTP的GET请 求: string strURL = &q ...

  4. Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面

    现在开发中的功能需要直接跳转到拨号.联系人.短信界面等等,查找了很多资料,自己整理了一下. 1.跳转到拨号界面,代码如下: 1)直接拨打 Intent intentPhone = new Intent ...

  5. linux直接启动到字符界面或从字符界面启动到图形化界面

    修改/etc/inittab文件 将内容为:"id:5:initdefault"的行的数字5改为3,保存重启即可直接进入字符界面 PS:3和5分别表示运行级别 从字符界面启动到图形 ...

  6. Java图形界面学习---------简易登录界面

    /** * @author Administrator * Java图形界面学习---------简易登录界面 * date:2015/10/31 */ import java.awt.BorderL ...

  7. UGUI(七)界面拖动和焦点界面

    http://blog.sina.com.cn/s/blog_89d90b7c0102vj9e.html 一般软件和游戏有多窗口多界面时,都可以拖动子界面和排序子界面[点击后变成焦点界面显示在最前面] ...

  8. Android 打开设置界面或者WiFi连接界面

    1.使用APP打开系统的设置界面或者WiFi连接界面 startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); //直接进入手机中的wifi网 ...

  9. react中界面跳转 A界面跳B界面,返回A界面,A界面状态保持不变 redux的state方法

    在上一篇文章中说过了react中界面A跳到B,返回A,A界面状态保持不变,上篇中使用的是传统的localStorage方法,现在来使用第二种redux的state方法来实现这个功能 现在我刚接触red ...

随机推荐

  1. Spring-Context之六:基于Setter方法进行依赖注入

    上文讲了基于构造器进行依赖注入,这里讲解基于Setter方法进行注入.在Java世界中有个约定(Convention),那就是属性的设置和获取的方法名一般是:set+属性名(参数)及get+属性名() ...

  2. 你不可不知的HTML优化技巧

    如何提升Web页面的性能,很多开发人员从多个方面来下手如JavaScript.图像优化.服务器配置,文件压缩或是调整CSS. 很显然HTML 已经达到了一个瓶颈,尽管它是开发Web 界面必备的核心语言 ...

  3. 每天一个linux命令(55):traceroute命令

    通过traceroute​我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径.当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不 ...

  4. 项目管理师prince2

    项目管理师prince2 PRINCE2并不适合用于管理商业活动中的日常事物.商业日常事务通常是指组织机构日常运营中需要完成的那些工作.例如,公司it系统的维护,宾馆的房间整理,或者运营公司的客户呼叫 ...

  5. MVVM架构~knockoutjs系列之Mapping插件为对象添加ko属性

    返回目录 对于一个JS对象来说,如果希望将所有属性进行监视,在之前我们需要一个个对属性添加ko.observable方法,而有了Mapping插件后,它可以帮助我们这件事. 在Mapping出现之前 ...

  6. Java和eclipxe的安装以及第一个程序

    首先我们需要下载java开发工具包JDK,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 注意事项:安装 ...

  7. Jenkins+MSbuild+SVN实现dotnet持续集成 快速搭建持续集成环境

    Jenkins是一个可扩展的持续集成引擎,Jenkins非常易于安装和配置,简单易用,下面开始搭建dotnet持续集成环境 一.准备工作 1.系统管理-->管理插件-->可选插件中找到MS ...

  8. React(二)实现双向数据流

    <div id="app"></div> <script src="bower_components/react/react.min.js& ...

  9. 贪心算法-Huffman编码

    伪代码: 例子:

  10. TSQL Merge 用法

    在更新数据仓库时,经常需要根据源表对Target表进行数据同步,Merge 命令具有数据更新,删除,插入的功能,专门用于数据同步,并将数据的更新输出到表中.在使用Merge命令时,需要注意when n ...