WPF Réglage de la style par défaut sur un TextBlock remplace le style de l'Étiquette

Réglage de la style par défaut sur un TextBlock provoque le style de l'Étiquette et d'autres contrôles à définir en tant que bien. Cela se produit uniquement si vous mettez les styles dans les ressources de l'Application, lorsque je place le style dans la Fenêtre de ressources, tout est bien.

J'ai aussi constaté que le VS 2008 Designer et XamlPadX affichage de l'Étiquette que vous attendez, mais le problème se produit uniquement si vous exécutez l'application dans la vie réelle.

<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>

Le code ci-dessus affiche:

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?)

OriginalL'auteur anon | 2010-02-05