• 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  
    
    
  • 相关阅读:
    react 如何 阻止冒泡
    GitHub如何下载clone指定的tag
    git 建立一个私有模块
    如何获取域名(网址)对应的IP地址
    [翻译] JTCalendar
    将jsonModel转化为文件
    CALayer动画的暂停,恢复,以及结束时候的回调
    用标签页TitleSwitch切换不通的控制器
    设计可以多选的按钮ChooseManyButton
    设计标签选择器TitleSwitch
  • 原文地址:https://www.cnblogs.com/BeiJing-Net-DaiDai/p/3253413.html
Copyright © 2020-2023  润新知