WPF 依赖属性概念

理解依赖属性

  在 WPF 中变成相比较于 传统 Windows Forms 变成发生了较大的改变. 属性现在以一组服务的形式提供给开发人员. 这组服务就叫做属性系统.

  由 WPF 属性系统所支持的属性成为依赖属性.

依赖属性的概念

  WPF 在依赖属性中提供了标准属性无法提供的功能,

  特性如下:

  决定属性值:

    依赖属性的属性值可以在运行时有其他元素或者是其他信息所决定, 决定的过程具有一个优先次序.

  自动验证或变更通知:

    依赖属性哟一个自定的回调方法, 当属性值变更时被执行, 这个回调能验证新的值或者依据属性语法强制使用新值.

  默认值:

    依赖属性提供了一致的机制来关联属性的默认值. 在决定属性值的过程中, 默认值具有最低的优先级. 这意味着如果没有其他的方法来决定属

    性值,将使用默认值.

  属性元数据:

    属性系统基于属性注册时提供的元数据信息来获取依赖属性的执行行为. 子类可以通过覆盖属性的元数据来调整依赖属性的行为.

  XAML 友好特性:

    与标准的属性类似, 依赖属性可以通过 XAML 进行设置.

  属性值继承:

    任何依赖属性都有能力从其父级或者上级继承属性值. 很多情况下, 属性值具有总要的作用. 比如数据绑定中, 可以传递一个数据源到逻辑书的

    子树中.

  附加属性:

    依赖属性的一种, 允许逻辑树中的子元素设置定义在父元素中的属性.

EXAMPLE:

<Grid>

<Grid.RowDefinitions>

<RowDefinition/>

<RowDefinition/>

<RowDefinition/>

<RowDefinition/>

<RowDefinition/>

<RowDefinition Height="Auto"/>

</Grid.RowDefinitions>

<TextBlock Name="txt" Text="点击下面的按钮改变字体, FontSize 是一个依赖属性" TextWrapping="Wrap" ></TextBlock>

<Button Grid.Row="1" >Button</Button>

<Button Grid.Row="2" >Button</Button>

<Button Grid.Row="3" >Button</Button>

<Button Grid.Row="4" >Button</Button>

<StackPanel Orientation="Horizontal" Grid.Row="5" HorizontalAlignment="Center">

<Button Name="btnWindowsSize" Margin="5" Click="btnWindowsSize_Click">改变窗口字体大小</Button>

<Button Name="btnButtonSize" Margin="5" Click="btnButtonSize_Click">改变文本块字体大小</Button>

</StackPanel>

</Grid>

BACKGROUND CODE:

namespace WPFlayout.ContentControl

{

/// <summary>

/// UnderstandingDp.xaml 的交互逻辑

/// </summary>

public partial class UnderstandingDp : Window

{

public UnderstandingDp()

{

InitializeComponent();

}

private void btnWindowsSize_Click(object sender, RoutedEventArgs e)

{

this.FontSize = 20;

}

private void btnButtonSize_Click(object sender, RoutedEventArgs e)

{

txt.FontSize = 10;

}

}

}

ILLUSTRATION:

时间: 2024-12-25 12:12:47

WPF 依赖属性概念的相关文章

WPF依赖属性详解

WPF依赖属性详解 WPF 依赖属性 英文译为 Dependency Properties,是WPF引入的一种新类型的属性,在WPF中有着极为广泛的应用,在WPF中对于WPF Dependency Properties 的使用贯穿样式的使用,数据绑定,动画等等,在刚刚接触Dependency Properties的时候可能觉得有些奇怪,但是,当你了解他要解决的问题的时候,你可能就不觉得奇怪了.Dependency Properties第一个要解决的问题就是控件的属性共享问题,由于大部分的WPF控

WPF依赖属性相关博客导航

1.一站式WPF--依赖属性(DependencyProperty)一(什么是依赖属性,依赖属性的由来) 2.一站式WPF--依赖属性(DependencyProperty)二(涉及依赖属性的使用) WPF依赖属性相关博客导航

[CodeSmith] WPF依赖属性脚本

<%-- Name: WPF 依赖属性 Author: Dxq Description: 生成WPF的依赖属性 --%> <%@ Template Language="C#" TargetLanguage="Text" %> <%@ Property Name="PropertyName" Default="PropertyName" Type="System.String"

WPF——依赖属性(Dependency Property)

1.什么是依赖属性 依赖属性是一种可以自己没有值,并且通过Binding从数据源获得值(依赖在别人身上)的属性,拥有依赖属性的对象被称为“依赖对象”. 依赖项属性通过调用 Register 方法(或 RegisterReadOnly)在 WPF 属性系统中注册,并通过 DependencyProperty 标识符标示属性. 依赖项属性只能由继承自 DependencyObject 类的类型使用,在WPF中大部分的类都可以支持依赖属性. 2.DependencyObject和DependencyP

WPF依赖属性1

属性是.net的核心部分,是每个.net程序员都必须熟悉的特性,但是在wpf中引入了依赖属性的概念,依赖属性和原来属性的定义完全不一样,wpf通过依赖属性改变了元素属性的定义方式,依赖属性为wpf的数据绑定.动画以及样式,都起到了关键的作用,所以理解依赖属性,对于理解wpf至关重要. C#的普通属性的定义,我们十分熟悉,他是一个成员变量,增加了get/set 方法实现的一种访问器,基本定义如下: class Example {     private string name;     publi

WPF依赖属性DependencyProperty

写在之前: 依赖属性算是WPF醉醉基础的一个组成了.平时写代码的时候,简单的绑定很轻松,但是遇到复杂的层次比较多的绑定,真的是要命.所以,我觉得深刻认识依赖属性是很有必要的.本篇只是个人学习的记录,学习的博客是周永恒先生的<一站式WPF--依赖属性(DependencyProperty)>,这算是一个系列了,说的很详细.如果需要更好的学习,建议移步上述原文,受益匪浅. 什么是依赖属性? Windows Presentation Foundation (WPF) 提供了一组服务,这些服务可用于扩

WPF 依赖属性与依赖对象

在介绍依赖属性之前,我先介绍下属性的历史 属性的历史: 早期C++的类中,只有字段及方法,暴露数据靠的是方法, 但是字段直接暴露会不安全,所以才用方法来暴露,在设置的时候加些约束,在MFC中就是这样的.但是为了访问某一个字段,总有设置及获得两个方法,太过分散,不利于管理.所以在C#中又引入了属性的概念,后来WPF又引入了依赖属性,可以节省实例对内存的开销,还可以通过binding依赖在其他对象上. 注意:字段是每个实例都要占用内存开销,而属性就如同方法(可以反编译查看,其实就是两个方法,这表示属

WPF 依赖属性

依赖属性,简单的说,在WPF控件应用过程中,界面上直接可以引用的属性 如:<Button Content="aaa"></Button> Content称为Button的依赖属性 当我们自定义控件时,如何添加依赖属性呢 1.添加属性 /// <summary> /// get or set the items /// </summary> public List<TitleListItemModel> TitleListIte

WPF依赖属性Binding实现

由于最近一段时间一直没有做相关方面的东西,导致好多东西都忘了,就一个依赖属性绑定还倒腾了一下.特专门把相关的实现方式存留在博客园 XAML部分,其中有一大块是实现样式的,如果有需要的可以看看,其实只要把握住这么个关键点就行了,在后台定义依赖属性,xaml部分一定要记得给窗体Name属性赋值,就比如我这里给的 x:Name="mainWindow"再就是在binding的时候的写法 Content="{Binding ElementName=mainWindow, Path=