Partilhar via


Estilos de dispositivo em Xamarin.Forms

Xamarin.Forms inclui seis estilos dinâmicos, conhecidos como estilos de dispositivo, na classe Device.Styles.

Os estilos de dispositivo são:

Todos os seis estilos só podem ser aplicados a Label instâncias. Por exemplo, um Label que está exibindo o corpo de um parágrafo pode definir sua Style propriedade como BodyStyle.

O exemplo de código a seguir demonstra o uso dos estilos de dispositivo em uma página XAML:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Styles.DeviceStylesPage" Title="Device" IconImageSource="xaml.png">
    <ContentPage.Resources>
        <ResourceDictionary>
            <Style x:Key="myBodyStyle" TargetType="Label"
              BaseResourceKey="BodyStyle">
                <Setter Property="TextColor" Value="Accent" />
            </Style>
        </ResourceDictionary>
    </ContentPage.Resources>
    <ContentPage.Content>
        <StackLayout Padding="0,20,0,0">
            <Label Text="Title style"
              Style="{DynamicResource TitleStyle}" />
            <Label Text="Subtitle text style"
              Style="{DynamicResource SubtitleStyle}" />
            <Label Text="Body style"
              Style="{DynamicResource BodyStyle}" />
            <Label Text="Caption style"
              Style="{DynamicResource CaptionStyle}" />
            <Label Text="List item detail text style"
              Style="{DynamicResource ListItemDetailTextStyle}" />
            <Label Text="List item text style"
              Style="{DynamicResource ListItemTextStyle}" />
            <Label Text="No style" />
            <Label Text="My body style"
              Style="{StaticResource myBodyStyle}" />
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

Os estilos de dispositivo estão vinculados ao uso da extensão de DynamicResource marcação. A natureza dinâmica dos estilos pode ser vista no iOS alterando as configurações de acessibilidade para o tamanho do texto. A aparência dos estilos de dispositivo é diferente em cada plataforma, conforme mostrado nas capturas de tela a seguir:

Estilos de dispositivo em cada plataforma

Os estilos de dispositivo também podem ser derivados definindo a BaseResourceKey propriedade como o nome da chave para o estilo do dispositivo. No exemplo de código acima, myBodyStyle herda e BodyStyle define uma cor de texto acentuada. Para obter mais informações sobre herança de estilo dinâmico, consulte Herança de estilo dinâmico.

O exemplo de código a seguir demonstra a página equivalente em C#:

public class DeviceStylesPageCS : ContentPage
{
    public DeviceStylesPageCS ()
    {
        var myBodyStyle = new Style (typeof(Label)) {
            BaseResourceKey = Device.Styles.BodyStyleKey,
            Setters = {
                new Setter {
                    Property = Label.TextColorProperty,
                    Value = Color.Accent
                }
            }
        };

        Title = "Device";
        IconImageSource = "csharp.png";
        Padding = new Thickness (0, 20, 0, 0);

        Content = new StackLayout {
            Children = {
                new Label { Text = "Title style", Style = Device.Styles.TitleStyle },
                new Label { Text = "Subtitle style", Style = Device.Styles.SubtitleStyle },
                new Label { Text = "Body style", Style = Device.Styles.BodyStyle },
                new Label { Text = "Caption style", Style = Device.Styles.CaptionStyle },
                new Label { Text = "List item detail text style",
                  Style = Device.Styles.ListItemDetailTextStyle },
                new Label { Text = "List item text style", Style = Device.Styles.ListItemTextStyle },
                new Label { Text = "No style" },
                new Label { Text = "My body style", Style = myBodyStyle }
            }
        };
    }
}

A Style propriedade de cada Label instância é definida como a propriedade apropriada da Device.Styles classe.

Acessibilidade

Os estilos de dispositivo respeitam as preferências de acessibilidade, portanto, os tamanhos de fonte serão alterados à medida que as preferências de acessibilidade forem alteradas em cada plataforma. Portanto, para dar suporte a texto acessível, verifique se os estilos de dispositivo são usados como base para quaisquer estilos de texto em seu aplicativo.

As capturas de tela a seguir demonstram os estilos de dispositivo em cada plataforma, com o menor tamanho de fonte acessível:

Estilos de dispositivos pequenos acessíveis em cada plataforma

As capturas de tela a seguir demonstram os estilos de dispositivo em cada plataforma, com o maior tamanho de fonte acessível:

Estilos de dispositivos grandes acessíveis em cada plataforma