Partilhar via


Xamarin.Forms Estilos de texto

Estilizando texto em Xamarin.Forms

Os estilos podem ser usados para ajustar a aparência de rótulos, entradas e editores. Os estilos podem ser definidos uma vez e usados por muitos modos de exibição, mas um estilo só pode ser usado com modos de exibição de um tipo. Os estilos podem ser dados a Key e aplicados seletivamente usando a propriedade de Style um controle específico.

Estilos incorporados

Xamarin.Forms Inclui vários estilos internos para cenários comuns:

  • BodyStyle
  • CaptionStyle
  • ListItemDetailTextStyle
  • ListItemTextStyle
  • SubtitleStyle
  • TitleStyle

Para aplicar um dos estilos internos, use a DynamicResource extensão de marcação para especificar o estilo:

<Label Text="I'm a Title" Style="{DynamicResource TitleStyle}"/>

No C#, os estilos internos são selecionados em Device.Styles:

label.Style = Device.Styles.TitleStyle;

Exemplo de estilos de dispositivo

Estilos personalizados

Os estilos consistem em setters e setters consistem em propriedades e os valores para os quais as propriedades serão definidas.

Em C#, um estilo personalizado para um rótulo com texto vermelho de tamanho 30 seria definido da seguinte maneira:

var LabelStyle = new Style (typeof(Label)) {
    Setters = {
        new Setter {Property = Label.TextColorProperty, Value = Color.Red},
        new Setter {Property = Label.FontSizeProperty, Value = 30}
    }
};

var label = new Label { Text = "Check out my style.", Style = LabelStyle };

Em XAML:

<ContentPage.Resources>
    <ResourceDictionary>
        <Style x:Key="LabelStyle" TargetType="Label">
            <Setter Property="TextColor" Value="Red"/>
            <Setter Property="FontSize" Value="30"/>
        </Style>
    </ResourceDictionary>
</ContentPage.Resources>

<ContentPage.Content>
    <StackLayout>
        <Label Text="Check out my style." Style="{StaticResource LabelStyle}" />
    </StackLayout>
</ContentPage.Content>

Observe que os recursos (incluindo todos os estilos) são definidos dentro ContentPage.Resourcesdo , que é um irmão do elemento mais familiar ContentPage.Content .

Exemplo de estilos personalizados

Aplicando estilos

Depois que um estilo é criado, ele pode ser aplicado a qualquer modo de exibição correspondente ao seu TargetType.

Em XAML, os estilos personalizados são aplicados aos modos de exibição fornecendo a sua Style propriedade uma StaticResource extensão de marcação que faz referência ao estilo desejado:

<Label Text="Check out my style." Style="{StaticResource LabelStyle}" />

No C#, os estilos podem ser aplicados diretamente a um modo de exibição ou adicionados e recuperados de uma página ResourceDictionary. Para adicionar diretamente:

var label = new Label { Text = "Check out my style.", Style = LabelStyle };

Para adicionar e recuperar da página ResourceDictionary:

this.Resources.Add ("LabelStyle", LabelStyle);
label.Style = (Style)Resources["LabelStyle"];

Os estilos internos são aplicados de forma diferente, pois precisam responder às configurações de acessibilidade. Para aplicar estilos internos em XAML, a DynamicResource extensão de marcação é usada:

<Label Text="I'm a Title" Style="{DynamicResource TitleStyle}"/>

No C#, os estilos internos são selecionados em Device.Styles:

label.Style = Device.Styles.TitleStyle;

Acessibilidade

Os estilos incorporados existem para facilitar o respeito pelas preferências de acessibilidade. Ao usar qualquer um dos estilos internos, os tamanhos de fonte aumentarão automaticamente se um usuário definir suas preferências de acessibilidade de acordo.

Considere o exemplo a seguir da mesma página de modos de exibição com os estilos internos com configurações de acessibilidade habilitadas e desabilitadas:

Desabilitado:

Estilos de dispositivo com acessibilidade desativada

Habilitado:

Estilos de dispositivo com acessibilidade ativada

Para garantir a acessibilidade, certifique-se de que os estilos internos sejam usados como base para quaisquer estilos relacionados a texto em seu aplicativo e que você esteja usando estilos de forma consistente. Consulte Estilos para obter mais detalhes sobre como estender e trabalhar com estilos em geral.