【.Net码农】WPF组件开发

WPF组件开发

在做组件之前,为了适应框架,我们需要有一个基类,并将这个基类打包成一个模板,让大部分组件去使用这个模板。

组件的基类就不多讲了,上篇文章中已经说过了。这是地址:

http://www.cnblogs.com/BeiJing-Net-DaiDai/articles/3248034.html

首先 将基类打包成一个模板    放在   

C:\Users\Administrator\Documents\Visual Studio 2010\Templates\ProjectTemplates\Visual C#    文件夹下这是win7下的     xp的在我的文档目录下找。

然后启动vs2010   文件->新建->项目

选择Visual C#  找到Component  

 

打开这个    就看到模板了。

ok!   开始编辑

哦,对了   记得改下名字

在创建解决方案的时候去改,不要创建好之后改,以免不必要的麻烦。

组件:

复制代码
public class ComponentTextBox : Component
    {
        public ComponentTextBox()
        {
            Content = new ShapeComponentTextBox();
        }

        public override string TextName
        {
            get { return "文本框"; }
        }
    }
复制代码

组件的属性:

复制代码
public class ComponentTextBoxProperty : ComponentProperty
    {
        private string _Content;

        [Category("内容设置")]
        [Description("文字")]
        public string Content
        {
            get { return _Content; }
            set
            {
                if (_Content == value) return;

                _Content = value;
                OnPropertyChanged("Content");
            }
        }

    }
复制代码

组件的事件:

  

复制代码
public class ComponentTextBoxEvent : ComponentEvent
    {
        private string _Click;

        [Category("基础事件")]
        [Description("单击事件.")]
        [EventInfo("Click")]
        public string Click
        {
            get { return _Click; }
            set
            {
                if (_Click == value) return;
                _Click = value;
                OnPropertyChanged("Click");
            }
        }

        public void OnClick(object sender, RoutedEventArgs e)
        {
            if (Click != null)
            {
                    //事件处理
            }
        }
    }
复制代码

ShapeComponentTextBox:

复制代码
public class ShapeComponentTextBox : HrvContent
    {
        public ComponentTextBoxProperty _Property;
        public ComponentTextBoxEvent _Event;    

        public ShapeComponentTextBox()
        {

            this.Content = new TextBox();
          BindingOperations.SetBinding(this.Content as TextBox, TextBox.ContentProperty, new Binding("Content") { Source = this.Property, Mode = BindingMode.TwoWay });
        }

        public override ComponentProperty Property
        {
            get
            {
                if (_Property == null)
                {
                    _Property = new ComponentTextBoxProperty();
                }
                return _Property;
            }
        }

        public override ComponentEvent Event
        {
            get
            {
                if (_Event == null)
                {
                    _Event = new ComponentTextBoxEvent();
                }
                return _Event;
            }
        }
    }
复制代码

如此,大功告成!

这样就创建了一个TextBox组件(因为我没有自己写)想自己写可以按照这种方式去写。

 

点击加入QQ群:

WPF、AE技术交流群:94234450  

分类: 组件开发
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值