Bindung Set-Wert in einem Stil, der in einem resource dictionary

Ich versuche, eine app erstellen, die mithilfe von skins/themes (verschiedene Farb-Paletten verwenden, wählen können).

Definiere ich eine SolidColorBrush Eigenschaft

public class ThemeManager
{
    public SolidColorBrush ForeBrush { get; set; }       

    public ThemeManager()
    {
        ForeBrush = new SolidColorBrush(Colors.Black);         
    }

    public void SetTheme()
    {        
        ForeBrush.Color = Colors.Red;
    }
}

und binden Sie es in XAML

<TextBlock Foreground="{Binding ForeBrush,Source={StaticResource Theme}}" />

Ich erkläre das Thema Ressource in der App.xaml

<local:ThemeManager x:Key="Theme" />

Das problem ist, wenn ich einen style wie:

<Style x:Key="TextBlockStyle1" TargetType="TextBlock">
     <Setter Property="Foreground" Value="{Binding ForeBrush,Source={StaticResource Theme}}" />
</Style>

Dies funktioniert wenn ich es in Page.Resources, aber wenn ich es in einem Resource Dictionary (und fügen Sie Sie zu App.xaml) die app stürzt ( Debugger.Pause() im App.g.ich.cs).
Dies scheint nur zu passieren, wenn mit einem Setter.

Was mache ich hier falsch?

BEARBEITEN:
platzieren Sie den Stil in einem Resource Dictionary-Datei und verweisen auf die in-app.xaml

Dieser code funktioniert auf meinem PC .Net 4.0. Welche version von .NETZ verwenden Sie?
Getestet hab ich den code sowohl in .Net 5 (metro-style-app) und wpf .Net 4.0. Haben Sie fügen den Stil in einem Wörterbuch nach und referenziert es in der app.xaml ?

InformationsquelleAutor Lescai Ionel | 2012-04-26

Schreibe einen Kommentar