ho uno stile applicato a tutte le mie caselle di testo, definite in un dizionario risorse ..Non può ignorare uno stile globale WPF che è impostato per TargetType su un singolo controllo specifico
<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>\
La grandezza scrittura e le proprietà fontStyle sono associati a una classe di impostazioni utente speciale che implementa iNotifyPropertyChanged, che consente di modificare le dimensioni del font e la famiglia di font per propagandare immediatamente tutta la mia applicazione.
Tuttavia, in un controllo utente che ho creato (ironicamente, lo schermo che consente all'utente di personalizzare le impostazioni dei caratteri), voglio che la dimensione del carattere e la famiglia dei caratteri rimangano statici. Non importa quello che provo, le impostazioni dei caratteri globali sostituiscono quello che ho impostato nel mio controllo utente:
<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>
... ecc ...
<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>
ho provato impostazione Stile a {x: Null}, impostazione delle dimensioni dei caratteri personalizzate in linea e impostazione di uno stile nelle risorse di questo controllo. Nessuno ha la precedenza sugli stili nel mio dizionario delle risorse.
Come potete vedere, mi mostra una spolverata di tutte le cose che ho provato nel campione XAML sopra ...
Che cosa mi manca?