首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从ValueConverter访问资源?

如何从ValueConverter访问资源?
EN

Stack Overflow用户
提问于 2013-04-01 21:08:15
回答 1查看 859关注 0票数 1

我在自定义DLL程序集中有一个UserControl,其中我定义了两个静态BitmapImage资源,它们表示ItemsControl中的数据状态。根据某些条件,我想使用转换器将图像的Source属性设置为BitmapImage资源之一。但是,我不知道如何从Convert方法中访问资源,因为我没有使用转换器的控件实例。

我尝试将资源加载到转换器静态构造函数中的静态变量中,该构造函数也位于同一个DLL中,但我没有成功。

这失败了..。

代码语言:javascript
复制
public class MyConverter : IValueConverter
{
    static BitmapImage myFirstResource;
    static MyConverter()
    {
        // This can't seem to find the resource...
        myFirstResource = (BitmapImage)Application.Current.FindResource("MyResourceKey");
    }
}

...but在XAML中,这是成功的,所以我知道资源键是有效的。

代码语言:javascript
复制
<Image Source="{StaticResource MyResourceKey}" />

我不知道这是否有什么区别,但这是在DLL中,而不是在EXE中。尽管如此,我仍然认为所有的资源都被压缩到应用程序上,这取决于您从哪里执行。

EN

回答 1

Stack Overflow用户

发布于 2019-05-15 08:15:39

在这里找到完美的解决方案-- Accessing a resource via codebehind in WPF (比使用Application.Current更好)

@itsho 您可以简单地将x:Class添加到其中: 然后在后面的代码中使用它: var res =新的Namespace.NewClassName();var col = res"myKey";

然后,应该应用一个小补丁:

@Stephen Ross 但是为了能够使用它的键找到资源,我必须在尝试访问res.InitializeComponent()之前调用key,否则对象将不显示键,而对res["myKey"]的调用将返回null

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15751918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档