WPF自制控件如何定义依赖属性

2017-10-19 21:14:50来源:CSDN作者:qiushanyuchen人点击

分享

WPF系统封装的控件基本可满足使用,但有时为了美观或功能的需求需要自定义控件,笔者以为自定义控件最重要在于如何定义依赖属性,具体实施如下:


1)注册属性:

public static readonly DependencyProperty XXXProperty =
            DependencyProperty.Register("XXX", typeof(double), typeof(自定义控件名),
                new FrameworkPropertyMetadata(0.00, new PropertyChangedCallback(XXXPropertyChangedCallback)));

参数说明:

"XXX":要注册的依赖项对象的名称,要跟返回的XXXProperty中的XXX保持一致。

typeof(double):属性的类型,此例以double为例。

typeof(自定义控件名):正注册依赖项对象的所有者类型,即所在类名。

new FrameworkPropertyMetadata(0.00, new PropertyChangedCallback(XXXPropertyChangedCallback)):依赖项对象的属性元数据。

0.00:依赖项对象的属性初始值,要保证是typeof(double)中的double类型,此例即是,如定义其他类型要赋予符合该类型又满足实际意义的值。

new PropertyChangedCallback(XXXPropertyChangedCallback):依赖项对象的有效属性值更改时调用的回调,就是属性值变了要做的反应处理,处理内XXXPropertyChangedCallback方法中定义,稍后定义该方法。

2)定义属性:

public double XXX
        {
            get { return (double)GetValue(XXXProperty); }
            set { SetValue(XXXProperty, value); }
        }

属性名XXX与1)中XXX保持一致,double是例子与1)中定义的类型一致即可。

3)定义依赖项对象的有效属性值更改时调用的回调函数

public static void XXXPropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            
        }

参数说明:

d:属性值已更改的对象

e:由任何事件发出的事件数据,该事件跟踪对此属性的有效值的更改,有用的两个属性OldValue变更前的值和NewValue变更后的值,说白了,该方法的功能就是如何安置新旧值。

以上完成。

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台