系统给的窗体样式都缺乏美感,想要漂亮的UI只能自己做,很容易实现

1.新建窗体,设置FormBorder为None

这时的窗体就只有一个Panel(Form自带的默认Panel),没有边框,没有标题栏(控制按钮)

2.拖入一个Panel覆盖在默认Panel上面【这一步非常必要】

这时的窗体和第一步得到的窗体外观上没有任何区别

至于为什么要这么做,因为:如果不这么做,窗体四周会有几条白边,尤其是右边和下边,一定会有宽度为4像素的白边,添加一个Panel覆盖在上面就不会有白边的问题了

3.设置Panel的背景图片

这里需要注意的是:如果背景图片中存在透明像素点,一定要设置Panel的BackColor为TransparentKey,否则会存在黑边问题

4.绘制自定义控件,添加至Panel

Button什么的可以自己绘制,也可以去找开源控件,比如“水晶按钮”

5.如果这样的UI还不能满足项目需求,可以搜索“半透明窗体”、“不规则形状窗体”、“圆形按钮”之类的,具体做法不在这里详述

-------

自定义UI到这里就完成了,重申一下白边的问题

什么情况下会出现白边?

直接设置无边框窗体的BackgroundImage,背景图片四周一定会出现白边,就像这样:

周围这一圈白边破坏了整个窗体的美感,给人一种很厚重的感觉,而好的UI,像QQ的窗体,给人一种很轻的感觉,看着很舒服

按照上面的方法去掉白边之后,窗体就变成这样了:

现在看着舒服多了吧,当然,这里还用了圆角矩形窗体,看着比较带感

圆角矩形不难实现,重写窗体的Resize方法,在方法内部设置窗体的Region属性为自绘的圆角矩形就好

WinForm如何去掉右边和下边的白边的更多相关文章

  1. 关于c# winform 键盘响应右边键盘消息响应事件的上下左右方向键没有反应

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11835642.html 记录一下这个小坑,c# winform 键盘响应右边键盘的上下左右方向 ...

  2. ckplayer播放器去掉右边的开关灯分享插件

    在上一篇文章中介绍了如何使用ckplayer播放器,但是有的人不需要CK播放器右边的开关灯分享插件,那么就需要把该插件给去掉,方法也很简单. 第一步:先打开ckplayer.js里找到下面三行删除掉 ...

  3. WPF控件经验小结:(1) ToolBar去掉右边箭头(扩展图标)

    今天开发时,同事问我一个问题.怎么去除ToolBar右边扩展图标.我想了一下,说改Style.同事说太麻烦了.可不可以快速修正.我说应该动态去读取Template模板中的Style,然后隐藏.怎么实现 ...

  4. xcode 5.0 以上去掉icon高亮方法&iOS5白图标问题

    之前的建议方法是把在xxx.info.plist文件中把 icon already includes gloss and bevel effects 设置YES 在Xcode5下,反复实现不成功,今天 ...

  5. pydev去掉右边的预览栏minimap

    eclipse pydev: preferences > PyDev > Editor > Overview Ruler Minimap

  6. input属性为number时,如何去掉右边的 +、-号

    修改css /* 谷歌 */ input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearan ...

  7. input type属性为number时,去掉右边的上下箭头

    加上样式: input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none; ...

  8. C#(winform)button去掉各种边框

    仔细读完,主要在FlatAppearance属性里 1.既然是添加背景图片 所以这里应该使用 Button.BackgroudImage = "" ;来设置图片 而不应该使用  B ...

  9. iOS裁剪,缩放图片白边问题解决办法

    几年没来了,感觉还是要写点啥,以后碰见问题 解决就写这吧,当是一个随时的笔记也好. iOS裁剪,缩放图片的代码网上也很多了,但是笔者出现了右边和下边出现白边的情况.出现白边的原因是给的size中的CG ...

随机推荐

  1. IE6 PNG不透明问题 (只解决img标签的图片)

    <script type='text/javascript' src="/script/ie6.pngfix.js"></script> 会让一些posit ...

  2. java的字典排序

    按照教程上的代码还是报错 应该是字典排序的问题,不能是Arrays.sort()

  3. models渲染字典&form表单上传文件&ajax上传文件

    {# {% for u in teacher_d.keys %}#} {# {% for u in teacher_d.values %}#} {% for k,u in teacher_d.item ...

  4. .net VS2008 时间加减,时间段,时间格式化到秒

    举个例子: DateTime time1 = DateTime.Now; DateTime time2 = time1.AddDays(1); time1是当前时间,time2比当前时间多一天.也就是 ...

  5. dedecms的自定义模块

    dedecms的自定义模块   1.在dedecms主目录下创建一个模块目录 2.在模块目录下创建如下目录 网站根目录/ |-自定义模块 |-control 控制器 |-model 模型 |-stat ...

  6. linux用户和组2

    1.用户相关命令 su 切换用户 root -> 普通用户 不需要密码 普通用户之间 需要密码 普通用户->root 需要密码 newgrp 切换组身份 whoami 查看当前登录名称 i ...

  7. struts框架总结

    1.struts2框架开发的过程:先导包,再写配置(写struts.xml配置,还有在web.xml中进行过滤器的配置,过滤器的配置一定不能少) 2.struts框架是前端web层的框架.主要的特点: ...

  8. 【转】HttpApplication的认识与加深理解

    原文:http://www.cnblogs.com/whtydn/archive/2009/10/16/1584584.html HttpApplication对象是经由HttpApplication ...

  9. vue2.0 tab切换几种方式

    第一种 比较灵活简单的方式(切换改变部分的内容在组件中比较方便操作) <template> <div id="app"> <ul> <li ...

  10. 三、oracle 用户管理一

    三.oracle 用户管理一 一.创建用户概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用.create user 用户名 ide ...