博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF组件开发之组件的基类
阅读量:5967 次
发布时间:2019-06-19

本文共 3490 字,大约阅读时间需要 11 分钟。

之前在网上看到很多关于组件开发的资料,但真正可以用到框架内的却很少。今天贴出自己做的组件,并适合大部分框架的代码。

组件开发需要先做出组件的基类,然后由其他的各类组件去继承这个基类,下面是组件基类的代码。

组件基类:

public abstract class Component    {        public abstract string Name { get; }        public abstract string Icon { get; }        public abstract string Description { get; }        public abstract ComponentEvent ComponentEvent        {            get;        }        public abstract ComponentProperty ComponentProperty        {            get;        }        public abstract UIElement CreateUIElement();    }

 

组件基类的属性:

public abstract class ComponentProperty : INotifyPropertyChanged    {        private double width;        private double height;        private double left;        private double top;private string name;        [Category("基本")]        [Description("名称")]        public string Name        {            get { return name; }            set            {                if (name == value) return;                name = value;                OnPropertyChanged("Name");            }        }        [Category("大小")]        [Description("宽度")]        public double Width        {            get { return width; }            set            {                if (width == value) return;                width = value;                OnPropertyChanged("Width");            }        }        [Category("大小")]        [Description("高度")]        public double Height        {            get { return height; }            set            {                if (height == value) return;                height = value;                OnPropertyChanged("Height");            }        }        [Category("位置")]        [Description("距左")]        public double Left        {            get { return left; }            set            {                if (left == value) return;                left = value;                OnPropertyChanged("Left");            }        }        [Category("位置")]        [Description("距上")]        public double Top        {            get { return top; }            set            {                if (top == value) return;                top = value;                OnPropertyChanged("Top");            }        }        #region INotifyPropertyChanged Members      //属性的监听事件        public event PropertyChangedEventHandler PropertyChanged;        protected void OnPropertyChanged(string propertyName)        {            if (string.IsNullOrEmpty(propertyName)) throw new ArgumentNullException("propertyName");            PropertyChangedEventHandler handler = PropertyChanged;            if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));        }        #endregion    }

组件基类的事件:

public abstract class ComponentEvent : INotifyPropertyChanged{#region 这个可以去掉private string _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){    //事件的处理  }}#endregion#region INotifyPropertyChanged Members//监听事件public event PropertyChangedEventHandler PropertyChanged;protected void OnPropertyChanged(string propertyName){if (string.IsNullOrEmpty(propertyName)) throw new ArgumentNullException("propertyName");PropertyChangedEventHandler handler = PropertyChanged;if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));}#endregion}

以上是组件的基类,组件基类打包为模板以及组件开发请关注后续章节,加群可优先哦。

 

WPF、AE技术交流群:94234450  点击加入QQ群:

转载于:https://www.cnblogs.com/BeiJing-Net-DaiDai/p/3248034.html

你可能感兴趣的文章
Linux下eclipse编译C/C++程序遇到 undefined reference to `pthread_create'的异常解决办法
查看>>
ajax上传图片的本质
查看>>
转]最长递增子序列问题的求解
查看>>
SilverLight:基础控件使用(6)-Slider控件
查看>>
Android写的一个设置图片查看器,可以调整透明度
查看>>
第 5 章 File Share
查看>>
判断字符串解析是JsonObject或者JsonArray
查看>>
[LeetCode] Implement strStr()
查看>>
多模块Struts应用程序的几个问题(及部分解决方法)
查看>>
1.2. MariaDB
查看>>
SpringSide示例之HelloWorld
查看>>
LINQ-to-SQL那点事~LINQ-to-SQL中的并发冲突与应对
查看>>
日志不说谎--Asp.net的生命周期
查看>>
C#~异步编程续~.net4.5主推的await&async应用
查看>>
C#进行MapX二次开发之图层操作
查看>>
ASP.NET 运行机制详解
查看>>
C++ little errors , Big problem
查看>>
在 ML2 中配置 OVS vlan network - 每天5分钟玩转 OpenStack(136)
查看>>
Selenium2+python自动化34-获取百度输入联想词
查看>>
【★★★★★】提高PHP代码质量的36个技巧
查看>>