我已IValueConverter
实施 - IconExtractor
。我这样用它:
<Image Source="{Binding Converter={StaticResource iconExtractor},
ConverterParameter=c:\\Windows\\System32\\shell32.dll|72}"/>
但要使其工作,IconExtractor
必须驻留在XAML的代码隐藏文件中,例如:我的主窗口是MainWindow.xaml
,因此类IconExtractor
必须是在MainWindow.xaml.cs
。我不能把它放在其他地方吗?
答案 0 :(得分:3)
您的IValueConverter
课程可以在任何您想要的地方,包括在另一个集会中。根据您的使用情况,您需要在MainWindow
课程中访问某个资源。一种简单的方法是将它放在窗口资源中。
<MainWindow.Resources>
<my:IconExtractor x:Key="iconExtractor"/>
</MainWindow.Resources>
您还可以使用App.xaml
中的资源,因为可以从项目中所有基于XAML的类访问其资源。使用App.xaml
会吸引我,因为如果项目中的多个窗口使用IconExtractor
,您可以避免重复工作。