Die Bindung einer Stil-Setter-Wert richtig
Ich habe Folgendes Szenario:
<UserControl.Resources>
<Style x:Key="NormalFontStyle">
<Setter Property="Control.FontFamily" Value="{Binding MyFont}"></Setter>
</Style>
<Style x:Key="BigFontStyle">
<Setter Property="Control.FontFamily" Value="{Binding MyFont}"></Setter>
<Setter Property="Control.FontSize" Value="{Binding MyBigFontSize}"></Setter>
</Style>
</UserControl.Resources>
<Grid Style="{StaticResource NormalFontStyle}">
<!-- Grid Contents -->
</Grid>
Den DataContext der Gitter ist das ViewModel mit MyFont und MyBigFontSize Eigenschaften. Der obige code funktioniert einwandfrei, und jeder text im Netz "NormalFontStyle" angewendet.
Nun der knifflige Teil: ich möchte die "BigFontStyle", um ein Steuerelement innerhalb des Gitters, die möglicherweise oder möglicherweise nicht den gleichen DataContext, was bedeutet, dass ich nicht mit diesem Ansatz.
Vielleicht verbindlich die Werte der setter, die statischen Eigenschaften ist der einzige Weg zu gehen, (ich habe gerade festgestellt, diese workaround für 3,5, das ist mein Fall hier) aber kein Licht auf dieser, ist willkommen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie stellen Sie Eigenschaften in den ein singleton, so können Sie binden Sie an und Bearbeiten Sie von überall in Ihrer Anwendung.
MySingleton.cs (ViewModelBase enthält eine Implementierung von INotifyPropertyChanged)
App.xaml
MyResourceDictionary.xaml
Jetzt können Sie verwenden, um Ihre stlyes von überall in Ihrer Anwendung:
Und ein Wert festgelegt werden, die in c# Verwendung: