首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问WPF用户控件库中的应用程序资源

访问WPF用户控件库中的应用程序资源
EN

Stack Overflow用户
提问于 2017-03-07 15:13:24
回答 2查看 1.6K关注 0票数 1

我有一个WPF用户控件库项目。在这个项目中,我有一个资源文件,我将它包含在我的用户控件资源中,如下所示:

代码语言:javascript
复制
<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="../Styles/Globals.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

如何从后台代码访问此资源?当我尝试访问Application.Current.Resources时,它是空的。

谢谢

编辑:我意识到这是因为资源是用户控件的成员,而不是应用程序的成员。(在用户控件库项目中,不能在应用程序级别添加资源)。

但是,因为我使用的是MVVM,所以我没有从视图模型到用户控件的访问权限,那么我如何才能访问用户控件资源中的样式呢?

EN

回答 2

Stack Overflow用户

发布于 2017-03-07 15:16:39

您可以访问如下样式

代码语言:javascript
复制
Style style = Application.Current.FindResource("ResourceName") as Style;

其中'ResourceName‘来自'Styles/Globals.xaml’

票数 0
EN

Stack Overflow用户

发布于 2017-03-07 18:28:45

像这样的东西对我来说很有效:

代码语言:javascript
复制
<Application x:Class="MyApp.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         StartupUri="MainWindow.xaml">
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/MyLibraryNamespace;component/rdImages.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MyLibraryNamespace;component/rdColorImages.xaml" />
            <ResourceDictionary Source="/rdStyles.xaml" />
            <ResourceDictionary Source="/rdStringResourceEN.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

前两个资源字典来自外部库(样式,画笔),后两个是本地的(包含在我的项目中-样式,字符串)。

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

https://stackoverflow.com/questions/42642340

复制
相关文章

相似问题

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