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组件(因为我没有自己写)想自己写可以按照这种方式去写。

    想要组件基类模板的请加群:

    如果有什么问题的请留言或者加群:

    WPF、AE技术交流群:94234450  
    
    群链接:http://wp.qq.com/wpa/qunwpa?idkey=14e3d476b4a53a3a1502183e5a384d94b8be74b7510c0a76e67c4dec61f23781
  • 相关阅读:
    IDEA 中直接连接远程服务器
    浙江大学软件学院2020年保研上机
    PAT甲级近五年题一览表
    浙江大学计算机与软件学院2021年考研复试上机
    浙江大学计算机与软件学院2019年保研上机
    PAT(甲级)2021年春季考试
    PAT(甲级)2020年冬季考试
    PAT(甲级)2020年秋季考试
    PAT(甲级)2020年春季考试
    PAT(甲级)2019年冬季考试
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3253554.html
Copyright © 2011-2022 走看看