2010-02-04 14 views
10

Zrobiłem mój własny niestandardowy konwerter, który podając ciąg zwraca Brush. Teraz jestem w stanie zwrócić stałe pędzle, takie jak Brushes.Red itp., Ale naprawdę chcę użyć własnych kolorów, które zdefiniowałem w zasobach aplikacji.WPF: Odwoływanie się do zasobów aplikacji w całym kodzie

Jak mogę odwoływać się do zasobów aplikacyjnych z mojej własnej niestandardowej klasy konwertera? Użyłbym FindResource, ale jak już powiedziałem, jest to z mojej własnej klasy konwertera, a nie z okna lub kontrolki.

Odpowiedz

2

Dodając do odpowiedzi Reeda, jeśli słownik zasobów jest samodzielnym plikiem XAML, musisz upewnić się, że jest on (jak mówi Reed) "zdefiniowany w Twojej aplikacji".

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> 

Build Action na tym pliku XAML słowniku można ustawić Page. Powinien znajdować się w tym samym katalogu, co plik App.xaml.

Powiązane problemy