TextBlock にデフォルト スタイルを設定すると、Label およびその他のコントロールのスタイルも設定されます。これは、アプリケーション リソースにスタイルを配置した場合にのみ発生します。ウィンドウ リソースにスタイルを配置すると、すべて問題ありません。
また、VS 2008 Designer と XamlPadX は期待どおりにラベルを表示しますが、実際にアプリケーションを実行した場合にのみ問題が発生することもわかりました。
<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>
上記のコードは次を表示します。
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?)