zoukankan      html  css  js  c++  java
  • WPF组件开发

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

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

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

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

    C:UsersAdministratorDocumentsVisual Studio 2010TemplatesProjectTemplatesVisual 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  
    
    
  • 相关阅读:
    关于IE6不能兼容LCUC使用的PNG透明图象
    rmvb压制中高级技巧
    不错的课件网站
    C#程序多用户只启动一个进程的方法
    不可想像的加密光盘复制工具
    检测远程URL是否存在的三种方法
    请哪里有英文单词单复数转换的代码?
    一些感想,欢迎拍砖
    Some thoughts on my own O/R Mapping or Code Generation tools
    有了net send,谁还用IM?
  • 原文地址:https://www.cnblogs.com/BeiJing-Net-DaiDai/p/3253413.html
Copyright © 2011-2022 走看看