[英]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.