我在自定义 DLL 程序集中有一个 UserControl,我在其中定义了两个静态 BitmapImage 资源,它们表示 ItemsControl 中的数据状态。我想根据某些条件使用转换器将 Image 的 Source 属性设置为 BitmapImage 资源之一。但是,我不确定如何从Convert
方法内部访问资源,因为我没有使用转换器的控件实例。
我已经尝试将资源加载到转换器的静态构造函数中的静态变量中,该构造函数也在同一个 DLL 中,但我没有成功。
这失败了...
public class MyConverter : IValueConverter
{
static BitmapImage myFirstResource;
static MyConverter()
{
// This can't seem to find the resource...
myFirstResource = (BitmapImage)Application.Current.FindResource("MyResourceKey");
}
}
...但在 XAML 中,这成功了,所以我知道资源密钥是有效的。
<Image Source="{StaticResource MyResourceKey}" />
我不知道这是否有任何区别,但这是在 DLL 中,而不是在 EXE 中。尽管如此,我认为所有资源都归结为应用程序,具体取决于您执行的位置。