Ожидается идентификатор в xaml ResourceDictionary для тематической цели в формах Xamarin - PullRequest
0 голосов
/ 23 апреля 2020

Я создал два xamls (я создал как ContentPage) один для темы Light, а другой для темы Dark (для iOS)

LightTheme.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:Class="LightTheme"/>

и LightTheme.xaml.cs

using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace MyApp.Forms
{
  [XamlCompilation(XamlCompilationOptions.Compile)]
  public partial class LightTheme : ResourceDictionary
  {
  }
}

Аналогично для DarkTheme.xaml (.cs).

В App.xaml.cs я ставлю

public static void ApplyTheme()
{
  if (AppInfo.RequestedTheme == AppTheme.Dark)
  {
    App.Current.Resources = new DarkTheme();
  }
  else
  {
    App.Current.Resources = new LightTheme();
  }
}

и приложение .xaml

...
<ResourceDictionary Source="LightTheme.xaml">
  <local:AppResource x:Key="AppResource"></local:AppResource>

  <OnPlatform x:Key="validMargin" x:TypeArguments="Thickness"  >
    <On Platform="UWP" Value="0,-5,0,0"/>
  </OnPlatform>


  <!--The Colors-->
  <Color x:Key="DarkPrimary">#403152</Color>
  <Color x:Key="Primary">#564266</Color>

 ...

При сборке решения я получил ошибки

enter image description here

Как это исправить?

1 Ответ

0 голосов
/ 23 апреля 2020

Проверьте схему x:Class в LightTheme.xaml, это должно быть пространство имен + имя класса, измените, как показано ниже

x:Class="Namespace.LightTheme"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...