Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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# UWP-引用来自不同样式资源字典的StaticResource:未能分配给属性';Source';_C#_Xaml_Uwp_Windows 10 Universal_Uwp Xaml - Fatal编程技术网

C# UWP-引用来自不同样式资源字典的StaticResource:未能分配给属性';Source';

C# UWP-引用来自不同样式资源字典的StaticResource:未能分配给属性';Source';,c#,xaml,uwp,windows-10-universal,uwp-xaml,C#,Xaml,Uwp,Windows 10 Universal,Uwp Xaml,您好,我的团队和我最近开始开发win10 uwp应用程序。应用程序将有很多视图和组件,因此需要大量使用样式,因此我们需要通过文件/文件夹结构来组织样式。我们使用以下结构来组织样式(遗憾的是,我还无法嵌入图像,请参见链接): 总之,my Resource.xaml合并了所有其他字典,如下所示: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http

您好,我的团队和我最近开始开发win10 uwp应用程序。应用程序将有很多视图和组件,因此需要大量使用样式,因此我们需要通过文件/文件夹结构来组织样式。我们使用以下结构来组织样式(遗憾的是,我还无法嵌入图像,请参见链接):

总之,my Resource.xaml合并了所有其他字典,如下所示:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/Resources/Colors.xaml" />
        <ResourceDictionary Source="/Resources/Icons.xaml" />
        <ResourceDictionary Source="/Resources/Fonts.xaml" />
        <ResourceDictionary Source="/Resources/Converters.xaml" />
        <ResourceDictionary Source="/Resources/Buttons.xaml" />
        <ResourceDictionary Source="/Resources/RadioButton.xaml" />
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

在我的App.xaml中,我引用了以下词典:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Resources/Resources.xaml" />
        </ResourceDictionary.MergedDictionaries>
        <vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
    </ResourceDictionary>
</Application.Resources>

现在,我设法在我的RadioButton.xaml中找到了问题的根源。我使用StaticResource lookup引用了Colors.xaml中定义的画笔:

<Setter Property="Foreground" Value="{StaticResource TopMenuTextBrush}" />

如果我删除这一行,一切都将开始,但我得到以下例外:

  • 异常{Windows.UI.Xaml.Markup.XamlParseException:找不到与此错误代码关联的文本
未能分配给属性 “Windows.UI.Xaml.ResourceDictionary.Source”,因为类型 “Windows .Field.String”不能被分配给类型 “Windows .Fase. Uri”. [行:28位:37 ] }系统.异常 {Windows.UI.Xaml.Markup.XamlParseException}

有趣的是,当我用这行注释和取消注释来启动应用程序时,VisualStudio将识别画笔并正确应用它,它只在应用程序启动时中断。 我们以前在开发WPF时使用了相同的方法,所以我认为这可能与应用程序部署有关

非常感谢您的帮助

Exception={Windows.UI.Xaml.Markup.XamlParseException:找不到与此错误代码关联的文本

问题是您使用了错误的
ResourceDictionary
源代码。我在屏幕截图中发现
Resources.xaml
和其他xaml文件存储在同一级别目录中。因此,您无法在源代码中声明这些xaml文件的父目录。请按如下方式修改ResourceDictionary

<ResourceDictionary Source="Colors.xaml"/>

有关更多信息,请参阅