三,依赖项属性_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 三,依赖项属性

三,依赖项属性

 2014/7/20 12:46:35  囚徒  程序员俱乐部  我要评论(0)
  • 摘要:定义依赖项属性publicclassFrameworkElement:UIElement{publicstaticreadonlyDependencyPropertyMarginProperty;staticFrameworkElement(){FrameworkPropertyMetadatametadata=newFrameworkPropertyMetadata(newThickness(),FrameworkPropertyMetadataOptions.None)
  • 标签:
  1. 定义依赖项属性
    public class FrameworkElement : UIElement
    {
        public static readonly DependencyProperty MarginProperty;
    
        static FrameworkElement()
        {
            FrameworkPropertyMetadata metadata = new FrameworkPropertyMetadata(new Thickness(), FrameworkPropertyMetadataOptions.None);
            MarginProperty = DependencyProperty.Register("Margin", typeof(Thickness), typeof(FrameworkElement), metadata, null);
        }
    
        public Thickness Margin
        {
            set { SetValue(MarginProperty, value); }
            get { return (Thickness)GetValue(MarginProperty); }
        }
    }

    只能为依赖对象(继承自DependencyObject的类)添加依赖项属性。它是DependencyProperty类的实例,属性信息应该始终保持可用,甚至可能需要在多个类中共享这些信息,因此,必须将DependencyProperty对象定义为与之相关联的类的静态字段。根据约定,定义依赖项属性的字段的名称为在普通属性的末尾加上单词“Property”,且使用readonly关键字进行修饰。
    DependencyProperty不能被直接实例化,因为DependencyProperty没有公有的构造函数,只能使用静态的DependencyProperty.Register()方法创建。
    注册一个依赖项属性需要经过两个步骤,首先创建一个FrameworkPropertyMetadata对象,该对象希望通过依赖项属性使用什么服务。其次通过调用DependencyProperty.Register()静态方法注册属性,在这一步中需提供以下几个要素:
    1)  属性名:在该示例中为Margin
    2)  属性使用的数据类型:在该示例中为Thickness结构
    3)  拥有该属性的类型:在该示例中为FrameworkElement类
    4)  一个具有附加属性设置的 FrameworkPropertyMetadata对象,该要素是可选的
    5)  一个用于验证属性的回调函数,该要素是可选的
    FrameworkPropertyMetadata类的所有属性的说明如下:
    QQ图片20140719183316" border="0" alt="QQ图片20140719183316" src="/Upload/Images/2014072012/6585CEB1F27291A8.jpg" width="244" height="103" />

  • 相关文章
发表评论
用户名: 匿名