WEB开发网
开发学院WEB开发ASP.NET WPF学习笔记5. DependencyProperty 阅读

WPF学习笔记5. DependencyProperty

 2010-10-11 16:08:41 来源:本站整理   
核心提示:3. 属性值继承此继承非 OOP 上的继承,它的本意是父元素的相关设置会自动传递给所有层次的子元素 (元素可以从其在树中的父级继承依赖项属性的值),WPF学习笔记5. DependencyProperty(2),其实很简单也很熟悉,当我们修改窗体父容器控件的字体设置时,一旦子元素提供了显式设置(比如下例中的 label

3. 属性值继承

此继承非 OOP 上的继承,它的本意是父元素的相关设置会自动传递给所有层次的子元素 (元素可以从其在树中的父级继承依赖项属性的值)。其实很简单也很熟悉,当我们修改窗体父容器控件的字体设置时,所有级别的子控件都将自动使用该字体设置 (未做自定义设置),相信你在 WinForm 中已经使用过了。

<Window x:Class="Learn.WPF.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Window1" FontSize="20">
  <Grid>
    <TextBox x:Name="textBox1" />
    <Label x:Name="label1" Content="Hello, World!" />
    <Button x:Name="btnTest" Content="Test" />
  </Grid>
</Window>

Window.FontSize 设置会影响所有的内部元素字体大小,这就是所谓的属性值继承。当然,一旦子元素提供了显式设置(比如下例中的 label1.FontSize),这种继承就会被打断。

<Window x:Class="Learn.WPF.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Window1" FontSize="20">
  <Grid>
    <TextBox x:Name="textBox1" />
    <Label x:Name="label1" Content="Hello, World!" FontSize="10" />
    <Button x:Name="btnTest" Content="Test" />
  </Grid>
</Window>

注意并不是所有的依赖属性都会继承父元素的设置。

Tags:WPF 学习 笔记

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接