【发布时间】:2013-04-01 21:08:15
【问题描述】:
我在自定义 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 中。不过,我认为所有资源都归结为应用程序,具体取决于您执行的位置。
【问题讨论】:
-
你不是说
myFirstResource = (BitmapImage)Application.Current.FindResource("MyResourceKey");吗? -
对不起。粘贴错误。固定。
-
然后删除对任何人都没用的问题。
-
我为什么要这样做?这个问题仍然有效。我的代码示例在此处重新格式化时出现粘贴错误。很抱歉,但我不同意你的说法。
标签: wpf resources ivalueconverter