未找到独立 ResourceDictionary 资源

Stand alone ResourceDictionary resource not found

我按照 https://docs.microsoft.com/en-us/xamarin/xamarin-forms/xaml/resource-dictionaries#stand-alone-resource-dictionaries 但是我得到了错误。

XFC0124 Resource "ResourceDictionary1.xaml" not found.

我的密码是

ResourceDictionary1.xaml(代码隐藏删除)编译选项:嵌入资源

<?xml version="1.0" encoding="UTF-8" ?>
<ResourceDictionary xmlns="http://xamarin.com/schemas/2014/forms"
                    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">

 <x:String x:Key="test">
        test string
    </x:String>

</ResourceDictionary>

ContentPage1.xaml

   <ContentPage.Resources>
        <ResourceDictionary Source="ResourceDictionary1.xaml"/>
  </ContentPage.Resources>

我按照 link 中提供的步骤进行测试,一切正常。

检查以下步骤

  1. 添加一个 ContentView 文件并将其重命名为 ResourceDictionary1 。

  2. 删除code-behind

  3. 删除 xaml 中的 x:Class="FormsApp.ResourceDictionary1" 并将标签从 ContentView 更改为 ResourceDictionary .

<?xml version="1.0" encoding="UTF-8"?>
<ResourceDictionary xmlns="http://xamarin.com/schemas/2014/forms" 
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" >
    
    
    <x:String x:Key="test">
        test string
    </x:String>
</ResourceDictionary>
  1. 其他用法xaml

    <ContentPage.Resources>
        <ResourceDictionary Source="ResourceDictionary1.xaml"/>
    </ContentPage.Resources>
    
    
    <ContentPage.Content>
        <StackLayout>
            <Button Clicked="Button_Clicked" Text="{StaticResource test}"/>
        </StackLayout>
    </ContentPage.Content>


如果您已完成上述所有步骤但问题仍然存在,则文件路径一定有问题。

ResourceDictionary 文件应与使用 ResourceDictionary 的页面位于同一级别。

  • 我们可以将它们放在表单项目的根目录下。

  • 我们可以将它们放在同一个文件夹中。

  • 如果不在同一级别,我们应该在页面中设置相对文件路径。

   // in page4.xaml
    <ContentPage.Resources>
        <ResourceDictionary Source="MyFolder/ResourceDictionary1.xaml"/>
    </ContentPage.Resources>