WPF学习系列之二 (依赖项属性)

依赖属性;(dependency property)
  它是专门针对WPF创建的,但是WPF库中的依赖项属性都使用普通的.NET属性过程进行了包装。从而可能通过常规的方式使用它们,即使使用他们的代码不理解WPF依赖项属性系统也是如此,使用旧技术包装新技术看起来有些奇怪,但这正是WPF能够改变基础组成部分,而不会扰乱.NET领域中其他部分的原因。
三步:
一:定义依赖项属性.public static readonly DependencyProperty MarginProperty;
二:.在静态构造函数中注册他们:
如下:static FrameworkElement(0
{
FrameworkPropertyMetadata metadata=new FrameworkPropertymetadata(new Thickness(),FrameworkPropertyMetadataOptions.AffectsMeasure);
MarginProperty=DependencyProperty.Register("Margin",typeof(Thickness),typeof(FrameworkElement),metadata,new ValidateValueCallback(FrameworkElement.IsMarginValid));
}

三:添加属性包装器:

public Thickness Margin
{
set {SetValue(MarginProperty,value)};
get{return (Thickness)GetValue(MarginProperty);}
}

WPF学习系列之二 (依赖项属性)

时间: 2024-10-18 03:25:29

WPF学习系列之二 (依赖项属性)的相关文章

WPF入门教程系列十二——依赖属性(二)

二. 依赖属性的优先级 由于WPF 允许我们可以在多个地方设置依赖属性的值,所以我们就必须要用一个标准来保证值的优先级别.比如下面的例子中,我们在三个地方设置了按钮的背景颜色,那么哪一个设置才会是最终的结果呢?是Black.Red还是Azure呢? <Window x:Class="WpfApp1.WindowDepend" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xm

【WPF学习】第十一章 理解依赖项属性

依赖项属性是标准.NET属性的全新实现——具有大量新增价值.在WPF的核心特性(如动画.数据绑定以及样式)中需要嵌入依赖项属性.WPF元素提供的大多数属性都是依赖项属性.到目前位置所见到的所有示例都用到了依赖项属性,但你可能还没有意识到这一点.这是因为依赖项属性的用法和普通属性的是相同的. 然而,依赖项属性并非普通属性.可能乐意认为依赖项属性是添加了一套WPF功能的常规属性(采用典型的.NET方式进行定义).从概念上讲,依赖项属性确实以这种方式工作,但它们的背后的实现方式并非如此.原因十分简单:

WPF学习之依赖项属性

依赖项属性-依赖属性 Register(String, Type, Type) 使用指定的属性名称.属性类型和属性所在对象的类型.Register(String, Type, Type, PropertyMetadata) 使用指定的属性名称.属性类型.属性所在对象的类型和属性元数据注册依赖项属性.Register(String, Type, Type, PropertyMetadata, ValidateValueCallback) 使用指定的属性名称.属性类型.属性所在对象的类型.属性元数据

学习WPF——初识依赖项属性

入门 首先创建一个依赖项属性 然后绑定父容器的DataContext到这个依赖项的实例 接着绑定子元素的属性到依赖项属性(注意Button的Content属性) 程序最终的运行结果: 说明 首先是定义表示属性的对象,一个依赖项属性的对象必然是DependencyProperty的实例 这个实例必须始终保持可用,所以这里定义为静态字段 根据约定,依赖项属性的字段名称使用Property结尾,上面例子使用的是NameProperty 依赖项属性实例的创建工作必须在使用之前完成,所以要么在定义的时候即

对WPF依赖项属性的理解

属性和事件是.NET抽象模型的核心部分, 而WPF中则用更高级的依赖项属性(Dependency Property)代替了原来.NET中的属性.依赖项属性主要应用于自定义元素中,用于为自定义元素注入自定义的属性. 以下是定义和注册依赖项属性的方法: //声明并注册依赖项属性 FoodProperty public static DependencyProperty FoodProperty =      DependencyProperty.Register("Food", typeo

WPF编程宝典之依赖项属性(八)

依赖项属性是专门针对WPF创建的,但WPF库中的依赖项属性都使用普通的.NET属性过程(property procedure)进行了封装. 1.定义依赖项属性 注:只能为依赖对象(继承自DependencyObject的类)添加依赖项属性.幸运的是,WPF基础结构的关键部分中的大部分都间接继承自DependencyObject类,最明显的例子就是元素. 依赖项属性需要在多个类之间共享信息,所以必须将DependencyProperty对象定义为与其相关联的类的静态字段.并且按照约定,依赖项属性的

WPF的依赖项属性

WPF的依赖项属性 属性与事件是.NET抽象模型的核心部分.WPF使用了更高级的依赖项属性(Dependency Property)功能来替换原来.NET的属性,实现了更高效率的保存机制,还添加了附加功能,如属性变更通知以及强制回调.属性值继承(在逻辑树中向下传播默认属性值的能力)以及属性有效性验证等.同时,依赖项属性也是WPF许多重要功能的基础,包括动画.数据绑定以及样式. 依赖项属性的使用基础 使用依赖项属性包括三个部分,定义依赖项属性:注册依赖项属性以及添加属性包装器. 定义依赖项属性,使

WPF 依赖项属性

WPF中的依赖项属性 “依赖项属性的用途在于提供一种方法来基于其他输入的值计算属性值”,只有定义属性为依赖项属性,这个属性才支持样式设置,数据绑定,继承,动画和默认值. 属性对应的字段必需是公有,静态,只读的,类型为DependencyProperty.即public static readonly DependencyProperty 字段名,同时字段的命名也有规范,属性名+Property,字段在定义时,通过DependencyProperty.Register来实注册属性(只有注册了,才能

WPF学习拾遗(二)TextBlock换行

原文:WPF学习拾遗(二)TextBlock换行 下午在帮组里的同事解决一个小问题,为了以后方便,把就把它收集一下吧. 新建一个TextBlock作为最基础的一个控件,他所携带的功能相对于其他的控件要来的比较少, 比较值得关注的属性出了布局用的以外和数据绑定意外,就只剩下的Text属性来. TextBlock的默认内容属性是Text. 对于换行来说,需要关注的也就是Text和Inline2个属性. 常见的TextBlock换行方法 1)转义字符换行 在XAML的后台文件中加入代码 1 Me.Te