我发现有人提出了一个问题,询问如何避免向应用程序资源中添加自定义值转换器的方法:
在WPF中使用Value Converter时,不必先将它们定义为资源
然而,我想更进一步,注册转换器后它们会变成隐式的,就像这个例子:
<SolidColorBrush Color="Blue" />
在这里,我假设有一个隐含的“StringToSolidColorBrushConverter”,使得示例能够运行。
这个例子不起作用:
<Window.Resources>
<Color x:Key="ForegroundFontColor">Blue</Color>
</Window.Resources>
<TextBlock Foreground={StaticResource ForegroundFontColor}>Hello</TextBlock>
我认为这是因为WPF没有默认的ColorToSolidColorBrushConverter
可供使用。我知道如何创建一个,但是我该如何“注册”它,以便WPF可以自动使用它,而不需要在绑定表达式中指定转换器呢?
TypeConverter
提供的(http://msdn.microsoft.com/en-us/library/aa970913.aspx),我不确定您是否可以以合理的方式在运行时注入它,因为它需要类或属性上的属性,而这些属性并非您所拥有。 - user7116