我指的是代碼塊here,對數據觸發爲什麼樣式targettype必須重新綁定回原始屬性?
<Window x:Class="WpfTutorialSamples.Styles.StyleDataTriggerSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="StyleDataTriggerSample" Height="200" Width="200">
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
<CheckBox Name="cbSample" Content="Hello, world?" />
<TextBlock HorizontalAlignment="Center" Margin="0,20,0,0" FontSize="48">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Text" Value="No" />
<Setter Property="Foreground" Value="Red" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=cbSample, Path=IsChecked}" Value="True">
<Setter Property="Text" Value="Yes!" />
<Setter Property="Foreground" Value="Green" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</StackPanel>
</Window>
對我來說,從編程語言設計點,線<Style TargetType="TextBlock">
是完全沒有必要的,因爲它已經被嵌套在<TextBlock>
裏面,這樣的當然,無論哪種設置屬性都應該應用於TextBlock
類型。那麼爲什麼需要行<Style TargetType="TextBlock">
?
可以<Style TargetType>
除TextBlock
之外的其他類型嗎?
*你可以使用任何類TextBlock派生自* ---什麼? – Graviton
'class CustomizedTextBlock:TextBlock'可以使用'Style'與'TargetType =「TextBlock」'(例如...)。而'TextBlock'本身則來自'FrameworkElement'。所以你可以爲'TextBlock Style'使用'TargetType =「FrameworkElement」'。但我看不到爲簡單的「TextBlock」所做的努力...... – WPFGermany