J'ai un style appliqué à tous mes champs de saisie, définis dans un dictionnaire de ressources ..Impossible de remplacer un style global WPF qui est fixé par TargetType sur un seul contrôle spécifique
<Style TargetType="TextBlock">
<Setter Property="TextBlock.FontSize" Value="{Binding Source={StaticResource ApplicationUserSettings}, Path=fontSize, Mode=OneWay}" />
<Setter Property="TextBlock.TextWrapping" Value="Wrap" />
<Setter Property="TextBlock.VerticalAlignment" Value="Center"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="TextBox.FontFamily" Value="{Binding Source={StaticResource ApplicationUserSettings}, Path=fontName, Mode=OneWay}"/>
</Style>\
Le fontsize et les propriétés fontStyle sont liés à une classe de paramètres utilisateur spéciale qui implémente iNotifyPropertyChanged, ce qui permet de modifier immédiatement la taille de la police et de la fontfamily dans toute l'application.
Cependant, dans un UserControl que j'ai créé (Ironiquement, l'écran qui permet à l'utilisateur de personnaliser ses paramètres de police), je veux que la taille de la police et la fontfamily restent statiques. Peu importe ce que j'essaie, mes paramètres de police globaux l'emportent sur ce que je mets dans mon contrôle utilisateur:
<UserControl x:Class="ctlUserSettings"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:R2D2" Height="400" Width="600">
<Grid>
<Grid.Resources>
<Style x:Key="tbxStyle" TargetType="TextBox">
<Style.Setters>
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontFamily" Value="Tahoma"/>
</Style.Setters>
</Style>
... etc ...
<StackPanel Margin="139,122.943,41,0" Orientation="Horizontal" Height="33" VerticalAlignment="Top">
<TextBox Style="{x:Null}" FontSize="13" FontFamily="Tahoma" HorizontalAlignment="Left" MaxWidth="500" MinWidth="350" Name="txtReaderPath" Height="Auto" VerticalAlignment="Top" />
<TextBox Style="{x:tbxStyle}" Margin="15,0,0,0" HorizontalAlignment="Left" Name="txtPath" Width="43" Height="23" VerticalAlignment="Top">(some text)</Button>
</StackPanel>
J'ai essayé de placer Style to {x: Null}, définissant les tailles de police personnalisées en ligne et définissant un style dans les ressources de ce contrôle. Aucune n'a priorité sur les styles de mon dictionnaire de ressources.
Comme vous pouvez le voir, je montre un saupoudrage de toutes les choses que j'ai essayé dans l'échantillon XAML ci-dessus ...
Qu'est-ce que je manque?