如何使用附加属性TextBlock.FontSize?

Dan*_*ous 1 wpf

我有一个简单的代码(见下文)我从一本书中复制过来.但我对这条线路有几个问题<Grid TextBlock.FontSize="48">.

  1. 从我收集的内容来看,TextBlock.FontSize是一个附加属性,但我最初认为附加属性是为了引用父对象(即当Grid.Row附加属性引用父Grid元素时).但是从这里使用它可能是我的理解不正确?这是一个附加属性,如果可以,它可以用于子元素?

  2. 其次,在网格上设置TextBlock.FontSize.但是,我没有在xaml中使用TextBlock元素(我知道).我只使用了内容定义的按钮.但是,如果我将TextBlock.FontSize更改为其他值,则字体大小会更改.因此,如何使用TextBlock.FontSize?TextBlock在哪里?

先感谢您.

<Window x:Class="UseAGrid.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid TextBlock.FontSize="48">
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition Height="250" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="2*" />
            <ColumnDefinition Width="auto" />
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Button Grid.RowSpan="2"
                Content="2 Rows" />
            <GridSplitter Grid.Row="0"
                          Grid.RowSpan="2"
                          Grid.Column="1"
                          Width="1"
                          Background="Green"
                          ResizeBehavior="PreviousAndNext"
                          ResizeDirection="Columns" />
        <Button Grid.Column="2"
                Grid.ColumnSpan="2"
                Content="2 Columns" />
        <Button Grid.Row="1"
                Grid.Column="2"
                Content="1,2" />
        <Button Grid.Row="1"
                Grid.Column="3"
                Content="1,3" />
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

Jef*_*ado 5

TextBlock.FontSize它不是附属属性,它只是一个常规的依赖属性.MSDN文档是在上市的附加属性的控制非常好,FontSize不是其中之一(它甚至没有任何).

然而,它是一种可继承的财产.查看它的依赖项属性信息,您将看到它继承了它的值.这允许我们做的是在祖先中设置属性的值,并且依赖于此属性的所有后代控件将继承相同的值,只要它们没有将值显式设置为其他值.

它适用的控件不必由您显式实例化,它也适用于样式,模板,内容演示者等.因此,在您的情况下,按钮的内容是文本,因此TextBlock用于显示该文本将也继承了字体大小.

有关更多信息,请参见属性值继承.