C# 获取无法转换为Xamarin.Forms.Element尝试创建自定义ResourceDictionary时出错

C# 获取无法转换为Xamarin.Forms.Element尝试创建自定义ResourceDictionary时出错,c#,visual-studio,xaml,xamarin,xamarin.forms,C#,Visual Studio,Xaml,Xamarin,Xamarin.forms,我正在尝试将样式分离到多个ResourceDictionary文件中。根据文档,我应该创建一个内容视图或内容页,并将其更改为从ResourceDictionary继承 要创建这样的文件,请将新的内容视图或内容页项添加到项目中(但不包括仅包含C#文件的内容视图或内容页)。在XAML文件和C#文件中,将基类的名称从ContentView或ContentPage更改为ResourceDictionary。在XAML文件中,基类的名称是顶级元素 我得到一个编译错误: 无法从MyApp1.Themes.

我正在尝试将样式分离到多个ResourceDictionary文件中。根据文档,我应该创建一个内容视图或内容页,并将其更改为从ResourceDictionary继承

要创建这样的文件,请将新的内容视图或内容页项添加到项目中(但不包括仅包含C#文件的内容视图或内容页)。在XAML文件和C#文件中,将基类的名称从ContentView或ContentPage更改为ResourceDictionary。在XAML文件中,基类的名称是顶级元素

我得到一个编译错误:

无法从MyApp1.Themes.RedTheme转换为Xamarin.Forms.Element

App.xaml

<Application.Resources>
    <ResourceDictionary >
        <ResourceDictionary.MergedDictionaries>
            <themes:ThemeBlue></themes:ThemeBlue>
            <themes:ThemeRed></themes:ThemeRed>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

这在VisualStudio中不起作用吗?Visual Studio中的“添加新文件”菜单中也没有资源索引模板。

可以使用XML文件模板:

添加新项目>已安装>Visual C#项目>数据>XML文件

App.xaml:


您忘记在样式上添加x:key。这就是为什么会出现异常。

编译App.xaml或RedTheme.xaml时是否会出现编译错误?
<ResourceDictionary xmlns="http://xamarin.com/schemas/2014/forms" 
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         x:Class="MyApp1.Themes.RedTheme"
         x:Name="redtheme">

    <Style TargetType="Label">
        <Setter Property="TextColor" Value="Black"></Setter>
    </Style>

</ResourceDictionary>
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class RedTheme : ResourceDictionary
{
    public RedTheme()
    {
        InitializeComponent ();
    }
}
<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="MyResourceDictionary.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">
    ...
</ResourceDictionary>