Wenn Sie den Standardstil für einen TextBlock festlegen, wird auch der Stil im Label und anderen Steuerelementen festgelegt. Dies passiert nur, wenn Sie die Stile in die Anwendungsressourcen einfügen, wenn ich den Stil in die Fenster-Ressourcen platziere, ist alles in Ordnung.WPF Festlegen des Standardstils für einen TextBlock überschreibt den Stil für ein Label
Ich habe auch festgestellt, dass der VS 2008 Designer und XamlPadX das Label anzeigen, wie Sie erwarten würden, aber das Problem tritt nur auf, wenn Sie die Anwendung im wirklichen Leben ausführen.
<Application x:Class="WpfApplication.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Window1.xaml">
<Application.Resources>
<ResourceDictionary>
<Style TargetType="TextBlock">
<Setter Property="FontSize" Value="8"/>
</Style>
<Style x:Key="Title" TargetType="Label">
<Setter Property="FontSize" Value="32"/>
</Style>
</ResourceDictionary>
</Application.Resources>
</Application>
<Window x:Class="WpfApplication.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="300"
Title="Window1"
Width="300">
<StackPanel>
<TextBlock Text="TextBlock No Style" Style="{x:Null}"/>
<Label Content="Label No Style" Style="{x:Null}"/>
<TextBlock Text="Default TextBlock"/>
<Label Content="Default Label" Style="{StaticResource Title}"/>
</StackPanel>
</Window>
Der obige Code zeigt:
TextBlock No Style - Default font size (As you would expect)
Label No Style - Size 5 font size (How did this happen?)
Default TextBlock - Size 5 font size (As expected by my style)
Default Label - Size 5 font size (How did this happen?)