【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里面进行可视化界面设计,然后将代码转移到相应模块······

    

  • 0
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值