我从书中复制了以下简单代码(见下文)。但我对<Grid TextBlock.FontSize="48">
行提出了几个问题。
从我收集的内容来看,TextBlock.FontSize是一个附加属性,但我最初认为附加属性是为了引用父对象(即当Grid.Row附加属性引用父Grid元素时)。但是从这里使用它可能是我的理解不正确?这是一个附加属性,如果可以,它可以用于子元素吗?
其次,在网格上设置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>
答案 0 :(得分:5)
TextBlock.FontSize
不是附加属性,它只是一个常规依赖属性。 MSDN文档非常适合列出控件的附加属性,而FontSize
是not one of them(它甚至没有)。
但它是可继承的属性。查看dependency property information,您会发现它的值inherits。这允许我们做的是在祖先中设置属性的值,并且依赖于此属性的所有后代控件将继承相同的值,只要它们没有将值显式设置为其他值。
它适用的控件不必由您显式实例化,它也适用于样式,模板,内容展示器等。因此,在您的情况下,按钮的内容是文本,因此TextBlocks用于显示该文本也将继承字体大小。
有关详细信息,请参阅Property Value Inheritance。