Как установить цвета для всего приложения на месте вместо того, чтобы делать это на каждом SubPage.xaml в Xamarin.Forms? - PullRequest
0 голосов
/ 06 февраля 2020

Не спрашивайте меня, почему, но я подумал, что только <ContentPage> может иметь <ContentPage.Resources>.

Так что у меня была куча цветовых сеттеров, а что нет почти в каждый XAML страница вроде этого:

       <ContentPage.Resources>
            <Style TargetType="NavigationPage">
                <Setter Property="BarBackgroundColor" Value="#000" />
                <Setter Property="BarTextColor" Value="#20b8a2" />
            </Style>
            <Style TargetType="ContentPage">
                <Setter Property="BackgroundColor" Value="#231f20" />
            </Style>
            <Style TargetType="Label">
                <Setter Property="TextColor" Value="#f7f7f7" />
            </Style>
            <Style TargetType="Entry">
                <Setter Property="TextColor" Value="#f7f7f7" />
            </Style>
            <Style TargetType="Button">
                <Setter Property="BackgroundColor" Value="#0089c1" />
                <Setter Property="TextColor" Value="#f7f7f7" />
                <Setter Property="CornerRadius" Value="0" />
            </Style>
       </ContentPage.Resources>

Так как поменять все основные цвета в одном месте?

1 Ответ

0 голосов
/ 06 февраля 2020

Таким образом, вместо ресурсов в каждом файле Solution / App / Views / SubPage.xaml, очевидно, существует внешний файл XAML в общих проектах root Solution / App / App.xaml, где вы можете просто установить эти ресурсы для всего приложения .

<Application ...>
       <Application.Resources>
            <Color x:Key="PrimaryColor">#20b8a2</Color> <!-- turqoise -->
            <Color x:Key="SecondaryColor">#0089c1</Color> <!-- blue -->
            <Color x:Key="TertiaryColor">#ef569f</Color> <!-- pink -->
            <Color x:Key="ThemeExtremeColor">#000000</Color>
            <Color x:Key="ThemeMainColor">#231f20</Color>
            <Color x:Key="ThemeLighterColor">#333333</Color>
            <Color x:Key="TextColor">#f7f7f7</Color>
            <Style TargetType="NavigationPage">
                <Setter Property="BarBackgroundColor" Value="{StaticResource ThemeExtremeColor}" />
                <Setter Property="BarTextColor" Value="{StaticResource PrimaryColor}" />
            </Style>
            <Style TargetType="ContentPage">
                <Setter Property="BackgroundColor" Value="{StaticResource ThemeMainColor}" />
            </Style>
            <Style TargetType="Grid">
                <Setter Property="BackgroundColor" Value="{StaticResource ThemeMainColor}" />
            </Style>
            <!--<Style TargetType="ListView">
                <Setter Property="BackgroundColor" Value="{StaticResource ThemeMainColor}" />
            </Style>-->
            <Style TargetType="Label">
                <Setter Property="TextColor" Value="{StaticResource TextColor}" />
            </Style>
            <Style TargetType="Entry">
                <Setter Property="TextColor" Value="{StaticResource TextColor}" />
            </Style>
            <Style TargetType="Button">
                <Setter Property="BackgroundColor" Value="{StaticResource SecondaryColor}" />
                <Setter Property="TextColor" Value="{StaticResource TextColor}" />
                <Setter Property="CornerRadius" Value="0" />
            </Style>
       </Application.Resources>
       ....
</Application>

Теперь "{StaticResource TextColor}" можно использовать в любом месте XAML.

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