Xamarn.Forms Style или StyleClass? - PullRequest
0 голосов
/ 26 марта 2020

Я работал с приложением Xamarin.Forms и заметил, что у меня есть два варианта применения стилей. Я могу создать стиль со свойством «class» и использовать его со свойством «StyleClass» элементов следующим образом:

    <Style Class="GenericButton" TargetType="Button">
        <Setter Property="BackgroundColor" Value="Orange"/>
    </Style>

    <Button StyleClass="GenericButton" Command="{Binding LoginCommand}" Text="Login" />

Или я могу написать стиль с помощью «x: Ключ "и используйте его со свойством" Стиль ", установленным для ресурса stati c:

    <Style x:Key="GenericBut" TargetType="Button">
        <Setter Property="BackgroundColor" Value="Azure"/>
    </Style>

<Button Style="{StaticResource GenericBut}" Command="{Binding LoginCommand}" Text="Login" />

Кажется, любой из них работает, но я не знаю, какой использовать в общем, и я не могу найти соответствующую документацию по своим целям. StyleClass - это IList, и я считаю, что он применяет такие стили, как CSS, что кажется полезным, но мне интересно, будут ли непредвиденные последствия его использования постоянно.

Спасибо

1 Ответ

0 голосов
/ 26 марта 2020

Обычные стили следуют стандартной, относительно негибкой модели WPF.

Класс стиля можно создать, установив для свойства Class в Style строку, представляющую имя класса. Это преимущество по сравнению с определением явного стиля с помощью атрибута x: Key заключается в том, что к VisualElement можно применить несколько классов стилей.

Несколько стилей могут совместно использовать одно и то же имя класса, если они нацелены на разные типы. Это позволяет нескольким классам стилей с одинаковыми именами нацеливаться на разные типы.

Как показано в коде ниже:

<ContentPage.Resources>
    <Style Class="style1" TargetType="Button">
        <Setter Property="BackgroundColor" Value="AliceBlue" />
    </Style>
    <Style Class="style2" TargetType="Button">
        <Setter Property="TextColor" Value="Red" />
    </Style>
    <Style Class="style1" TargetType="Label">
        <Setter Property="TextColor" Value="Red" />
    </Style>
</ContentPage.Resources>

Для элемента управления можно применить несколько классов стилей, поскольку свойство StyleClass имеет введите IList.

 <Button
            x:Name="btn1"
            Clicked="Btn1_Clicked"
            StyleClass="style1,style2"
            Text="change image source" />

О StyleClass, пожалуйста, посмотрите:

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/styles/xaml/style-class

Я думаю, StyleClass - это новая функция, поэтому там плохо документированы.

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