C#实现界面与功能的分离:Ribbon界面

以前写程序,在MainWindow里面到处都是菜单、按钮、工具栏的事件,这个文档的内容特别长,找一个功能对应的代码太多,很不方便,最近看了一些Sharpdevelop的插件方式(主要是网上其他朋友的据介绍,还有那本由该软件开发者所编写的书,不过只看了一部分),自己写了一个功能有限、很简单的框架(暂且称之为框架吧,对我自己来讲已经比以前方便了很多了),我使用了ribbon界面,是Developer Express v2011 vol 1 ,是使用他带的你个向导生成的,然后在此基础上改的:  见图:

 

如果要增加一个功能,只需要写一个类继承于:AbstractToolButton,然后覆写几个字段和一个函数:详见下方的代码:

  public  class Test:AbstractToolButton
    {
        private Image image = null;
        public override int Index
        {
            get
            {
                return 0;
            }
            set
            {
                base.Index = value;
            }
        }
        public override bool Enable
        {
            get
            {
                return true;
            }
        }
        public override string PageName
        {
            get
            {
                return "MyTest";
            }
        }
        public override string GroupName
        {
            get
            {
                return "File";
            }
        }
        public override string  Caption
        {
            get
            {
                return "Test0";
            }
            set
            {
                base.Text = value;
            }
        }
        public override System.Drawing.Image Image
        {
            get
            {
                if (this.image == null)
                {
                    return Image.FromFile("0002.ICO");
                }
                else
                {
                    return this.image;
                }
            }
            //set
            //{
            //   this.image = value;
            //}
        }
        public override void Run()
        {
            MessageBox.Show("This is My ToolButton Test!--------------@");
        }
    }

在以上代码中包含了该按钮是否可用,这在权限判断中很有用(在这里我直接返回了真,在系统中根据需要返回真假即可),在Run函数中,增加要执行的功能就可以了。

在上面 图中,我增加了一个Page和2个Group ,如果你要生成的Page和Group的名字在系统中没有,就会自动生成,图标也是在这个类中指定。将这样的类编译成DLL放在目录中(一个DLL中可以有多个功能(类)),系统会自动反射出来,以增加功能。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值