从值转换器访问资源字典中的颜色

我在ResourceDictionary中定义了几种颜色。 例如:

 #FFF7F1F3 #FFDDD8DA  

所以我可以在应用程序的各处重用它们。

现在我写了一个值转换器来将项目内部状态转换为相关颜色。

如何访问值转换器代码中定义的颜色?

我的第一个想法是将字典作为转换器参数传递。 但我不知道如何实现这一目标。

问候

编辑

Application.Current.Resources不是一个选项。 因为我以后无法访问它。

使用转换器参数的烦人之处在于,每次要使用绑定时都必须添加该文本。

相反,您可以将ResourceDictionary设置为转换器上的属性,并在实例化转换器时设置它。

转换器代码:

 public class SomeConverter : IValueConverter { private ResourceDictionary _resourceDictionary; public ResourceDictionary ResourceDictionary { get { return _resourceDictionary; } set { _resourceDictionary = value; } } public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { //do your own thing using the _dict //var person = value as Person //if (person.Status == "Awesome") // return _resourceDictionary["AwesomeBrush"] //else // return _resourceDictionary["NotAwesomeBrush"]; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } } 

实例化并使用转换器:

        ...