600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 【C#】winform软件UI设计模板

【C#】winform软件UI设计模板

时间:2019-03-14 19:43:06

相关推荐

【C#】winform软件UI设计模板

最近一直在改软件UI,源码,欢迎讨论

一、简介

之前用的一个模板用的是office风格的,但是奈何最近做的系统功能并不是很多,菜单栏显得很空洞,BOSS严令整改。遂改变思路想做一个类似360的UI,但是BOSS还是不满意,于是改来改去改成了现在这个样子,除了使用winform的原生控件,还使用了DevExpress插件。

二、构成

主要分为三个部分,上下各一个panel,中间主要是用了DevExpress插件的Dock Manager以及documentManager控件。这两个控件的详细使用方式也不做介绍了,主要记录一些常见的问题

2.1 移动窗体

为了从头开始设计UI将Form改为无边框模式,最开始使用的是想利用MouseDown、MouseMove等事件来实现窗体的移动,但是效果差强人意,当鼠标拖动过快使会使鼠标在控件上有一段位移,下面这种方法说实话我不是很懂,但是确实比之前的方法要好不少。

[DllImport("user32.dll")]public static extern bool ReleaseCapture();[DllImport("user32.dll")]public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);public const int WM_SYSCOMMAND = 0x0112;public const int SC_MOVE = 0xF010;public const int HTCAPTION = 0x0002;private void panel_Top_MouseDown(object sender, MouseEventArgs e) //panel_Top为最上部的panel{ReleaseCapture();SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);}

2.2右上角功能菜单

有一个需要解决的问题是,在对窗体进行放缩时,要确保右上角功能按钮的相对位置不发生改变,即一直处于右上角,为了方便管理,我将三个button一个labelControl放在了一个panel里面,然后将这个panel的Anchor属性设置为Top,Right。

2.3中间部分

导航菜单是dockManger中的一个dockpanel,dock属性设置为left,可添加菜单和子项,点击子项,可在右侧documentManger上显示自定义的控件,这里吐槽一下DevExpress这个自定义控件,不知道是不是我的打开方式不对(?),这个自定义控件的设计是没有可视化界面给用户添加控件的(或许是我没找到?),我只能在dockManger里面添加dockpanel,然后在dockpanel里面进行可视化界面设计,然后将代码转移到相应模块······

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。