![](/img/trans.png)
[英]Why is TextBlock.FontSize converted into an attached property in binary (BAML)?
[英]How is the attached property TextBlock.FontSize used?
我有从书中复制的以下简单代码(见下文)。 但是我对<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>
TextBlock.FontSize
不是附加属性,它只是常规的依赖项属性。 MSDN文档非常擅长列出控件的附加属性,而FontSize
不是其中之一 (它甚至没有任何属性)。
但是,它是一个可继承的属性。 查看它的依赖项属性信息 ,您将看到它继承其值。 这允许我们做的是在祖先中设置属性的值,并且只要它们未明确将值设置为其他值,所有依赖此属性的后代控件都将继承相同的值。
它所适用的控件不必由您显式实例化,它也适用于样式,模板,内容演示者等。因此,在您的情况下,按钮的内容是文本,因此用于显示该文本的TextBlocks将也继承字体大小。
有关更多信息,请参见属性值继承 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.