2010-02-04 6 views
10

Ich habe meinen eigenen benutzerdefinierten Konverter, der eine Zeichenfolge gibt eine Brush zurückgibt. Jetzt kann ich konstante Pinsel wie Brushes.Red usw. zurückgeben, aber ich möchte wirklich meine eigenen Farben verwenden, die ich in einer anwendungsweiten Ressource definiert habe.WPF: App-weite Ressourcen in Code-Behind referenzieren

Wie referenziere ich anwendungsweite Ressourcen von meiner eigenen benutzerdefinierten Konverterklasse? Ich würde FindResource verwenden, aber wie gesagt, das ist von meiner eigenen Konverterklasse, kein Fenster oder Kontrolle.

Antwort

2

Wenn Sie zu der Antwort von Reed hinzufügen, müssen Sie sicherstellen, dass das Ressourcenwörterbuch eine eigenständige XAML-Datei ist (wie Reed sagt) "in Ihrer Anwendung definiert" ist.

App.xaml:

<Application x:Class="WpfApplication10.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      StartupUri="MainWindow.xaml"> 
    <Application.Resources> 
     <ResourceDictionary Source="Dictionary1.xaml" /> 
    </Application.Resources> 
</Application> 

Dictionary1.xaml:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <TextBlock x:Key="k_foo" Text="FOO" /> 
</ResourceDictionary> 

Die Build Action auf diesem Wörterbuch XAML-Datei kann auf Page eingestellt werden. Es sollte sich im selben Verzeichnis wie die App.xaml-Datei befinden.