当前位置:  开发笔记 > 编程语言 > 正文

使用Findresource加载资源会引发异常 - WPF/C#

如何解决《使用Findresource加载资源会引发异常-WPF/C#》经验,为你挑选了1个好方法。

我正在WPF中编写CustomControl.我在我的Themes/Generic.xaml中有一些DataTemplates,在resourcedictionary级别,为它们分配了x:Key.

现在从相同的控件类代码中,我想找到并加载该资源,以便我可以动态地为代码中的某些东西做出贡献.

我试过base/this.FindResource("keyvalue"),this.Resources [""]等.

它一直返回找不到资源,因此为null.

该资源在generic.xaml中非常有用.

请帮忙.



1> Alex_P..:

回答有点迟,但可能会让其他人受益.

您尝试访问的资源位于主题级别,要从程序集中的任何位置访问它,必须由ComponentResourceKey标识:


然后在你的XAML中你会像这样引用它:


并在你的代码中这样:

ComponentResourceKey key = new ComponentResourceKey(typeof(MyTVIStyleSelector), "tviStyle_1");
Style style = (Style)Application.Current.TryFindResource(key);

还有一种冗长的XAML语法形式,看起来像这样(但它只是一样):


请注意,即使必须设置TypeInTargetAssembly,它也不会限制对程序集中其他类型的此资源的访问.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有