Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问WPF用户控制库中的应用程序资源_C#_Wpf - Fatal编程技术网

C# 访问WPF用户控制库中的应用程序资源

C# 访问WPF用户控制库中的应用程序资源,c#,wpf,C#,Wpf,我有一个WPF用户控制库项目。 在同一个项目中,我有一个资源文件,我将其包含在我的用户控制资源中,如下所示: <UserControl.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="../Styles/Globals.xaml"/>

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

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="../Styles/Globals.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

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

谢谢

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


但是,因为我使用的是MVVM,所以我没有从viewmodel访问用户控件的权限,因此如何访问用户控件资源中的样式?

您可以访问以下样式

Style style = Application.Current.FindResource("ResourceName") as Style;

“ResourceName”来自“style/Globals.xaml”

您可以访问以下样式

Style style = Application.Current.FindResource("ResourceName") as Style;

其中“ResourceName”来自“Styles/Globals.xaml”

类似的内容对我很有用:

<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>


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

类似的内容对我很有用:

<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>


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

我尝试了,但没有成功!它在常规WPF项目中工作正常,但在用户控制库项目中不工作。我尝试过,但不工作!它在常规WPF项目中正常工作,但在用户控制库项目中无效在用户控制库项目中我没有app.xaml文件,无法在应用程序级别声明资源在用户控制库项目中我没有app.xaml文件,无法在应用程序级别声明资源