Setting the default style in the TextBlock causes the style in the shortcut and other controls to be set as well. This only happens if you add styles to the application resources, when I put the style into Window resources, everything is fine.
I also found that VS 2008 Designer and XamlPadX display a shortcut, as you would expect, but the problem only occurs when running the application in real life.
<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>
The above code displays:
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?)
styles wpf default font-size textblock
anon
source share