У меня есть проект Xamarin со следующей структурой:
MyApp
- Конвертеры
- Модели
- Стили
-Colors.xaml
- ViewModels
- Просмотры
-ListPage.xaml
-ListPage.xaml.cs
Я пытаюсь использовать Colors.xaml в качестве внешнего словаря ресурсов для моей цветовой схемы всего приложения. , Я добавил источник в ресурсы ListPage.xaml, например, так:
<ContentPage.Resources>
<ResourceDictionary Source="Styles/Colors.xaml"/>
<!--<ResourceDictionary>
<converter:StatusToColorConverter x:Key="StatusToColorConverter" />
</ResourceDictionary>-->
</ContentPage.Resources>
Когда я пытаюсь построить проект, я получаю несколько ошибок сборки, которые, похоже, начинаются с ошибки
Resource "Styles/Colors.xaml not found.
Я пытался удалить тег класса из файла Colors.xaml, а также файл с выделенным кодом (очевидно, его нет в моей структуре) согласно этой документации и это все еще не решило проблему. Я также добавил тот же <ResourceDictionary Source="Styles/Colors.xaml"/>
в мой файл приложения безрезультатно. Чего мне не хватает, чтобы направить ListPage.xaml в файл Colors.xaml?
Весь соответствующий код ниже:
Colors.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">
<!--Color Scheme-->
<Color x:Key="ColorBackground">#333333</Color>
<Color x:Key="ColorObjectBackground">#FFFFFF</Color>
<Color x:Key="ColorTierOneText">#3c3c3c</Color>
<Color x:Key="ColorTierTwoText">#999999</Color>
</ResourceDictionary>
ListPage.xaml
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:converter="clr-namespace:MyApp"
mc:Ignorable="d"
x:Class="MyApp.Views.ListPage"
Title="this is the title">
<ContentPage.BackgroundColor>
<OnPlatform x:TypeArguments="Color">
<On Platform="GTK" Value="#3c3c3c" />
</OnPlatform>
</ContentPage.BackgroundColor>
<ContentPage.Resources>
<ResourceDictionary Source="Styles/Colors.xaml"/>
<!--<ResourceDictionary>
<converter:StatusToColorConverter x:Key="StatusToColorConverter" />
</ResourceDictionary>-->
</ContentPage.Resources>
<StackLayout>
<Label x:Name="NotFoundMessage"
IsVisible="False"
Text="No results found."
HorizontalTextAlignment="Center"
TextColor="ColorTierTwoText"
Padding="5"/>
</StackLayout>
</ContentPage.Content>
</ContentPage>
App.xaml
<?xml version="1.0" encoding="utf-8" ?>
<Application xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="MyApp.App">
<Application.Resources>
<ResourceDictionary Source="Styles\Colors.xaml"/>
</Application.Resources>
</Application>