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  


本文转载:CSDN博客