Xamarin.Forms - Aplicando estilos - II |
Neste artigo vou mostrar como criar e aplicar estilos usando o conceito de estilos em aplicações Xamarin Forms. |
No artigo anterior apresentei, de forma bem resumida, o conceito de estilos em aplicações Xamarin Forms e neste artigo vou mostrar como usar na prática este recurso.
Criando e consumindo
Estilos - StaticResource
Abra o Visual Studio Community 2017 e clique em New Project;
Selecione Visual C# -> Cross-Platform e o template Cross Plataform App (Xamarin);
Informe o nome XF_Estilos e clique no botão OK;
A seguir marque o template Blank App e as opções Xamarin.Forms e Portable Class Library(PCL) e clique em OK;
Aplicando estilos
Vamos supor que o código da página MainPage.xaml possua o seguinte código :
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XF_Estilos"
x:Class="XF_Estilos.MainPage">
<ContentPage.Content>
<StackLayout>
<Label Text="Nome" BackgroundColor="White" TextColor="Blue" FontSize="20" />
<Entry BackgroundColor="White" TextColor="Blue" />
<Label Text="Sobrenome" BackgroundColor="White" TextColor="Blue" FontSize="20" />
<Entry BackgroundColor="White" TextColor="Blue" />
<Label Text="Endereco" BackgroundColor="White" TextColor="Blue" FontSize="20" />
<Entry BackgroundColor="White" TextColor="Blue" />
<Label Text="Cidade" BackgroundColor="White" TextColor="Blue" FontSize="20" />
<Entry BackgroundColor="White" TextColor="Blue" />
<Label Text="Estado" BackgroundColor="White" TextColor="Blue" FontSize="20" />
<Entry BackgroundColor="White" TextColor="Blue" />
<Label Text="Email" BackgroundColor="White" TextColor="Blue" FontSize="20" />
<Entry BackgroundColor="White" TextColor="Blue" />
</StackLayout>
</ContentPage.Content>
</ContentPage>
|
|
|
Observe que temos muitas propriedades com valores repetidos, e vamos definir um estilo e aplicar o estilo usando um ResourceDictionary a nível de página, para aplicar os valores a todas as views da página.
Abra o arquivo App.xaml e inclua o código abaixo neste arquivo:
<?xml version="1.0" encoding="utf-8" ?> <Application xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="XF_Estilos.App"> <Application.Resources> <!-- Application resource dictionary --> <ResourceDictionary> <Style x:Key="labelStyle" TargetType="Label"> <Setter Property="BackgroundColor" Value="White" /> <Setter Property="FontSize" Value="20" /> <Setter Property="TextColor" Value="Blue" /> </Style> </ResourceDictionary> </Application.Resources> </Application>
|
Definimos um estilo definindo as propriedades BackgroundColor, FontSize e TextColor usando o identificador labelStyle para ser aplicado a Label. Note que definimos o estilo usando um ResourceDictionary.
Vamos agora aplicar o estilo ao nosso código no arquivo MainPage.xaml conforme mostrado a seguir:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XF_Estilos"
x:Class="XF_Estilos.MainPage">
<ContentPage.Content>
<StackLayout>
<Label Text="Nome" Style="{StaticResource labelStyle}" />
<Entry BackgroundColor="White" TextColor="Blue" />
<Label Text="Sobrenome" Style="{StaticResource labelStyle}" />
<Entry BackgroundColor="White" TextColor="Blue" />
<Label Text="Endereco" Style="{StaticResource labelStyle}" />
<Entry BackgroundColor="White" TextColor="Blue" />
<Label Text="Cidade" Style="{StaticResource labelStyle}" />
<Entry BackgroundColor="White" TextColor="Blue" />
<Label Text="Estado" Style="{StaticResource labelStyle}" />
<Entry BackgroundColor="White" TextColor="Blue" />
<Label Text="Email" Style="{StaticResource labelStyle}" />
<Entry BackgroundColor="White" TextColor="Blue" />
</StackLayout>
</ContentPage.Content>
</ContentPage>
|
Melhorou um pouco mas podemos melhorar ainda mais...
Vamos criar um estilo para as views Entry e alterar o código do arquivo App.xaml conforme abaixo:
<?xml version="1.0" encoding="utf-8" ?>
<Application xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XF_Estilos.App">
<Application.Resources>
<!-- Application resource dictionary -->
<ResourceDictionary>
<Style TargetType="Label">
<Setter Property="BackgroundColor" Value="White" />
<Setter Property="FontSize" Value="20" />
<Setter Property="TextColor" Value="Blue" />
</Style>
<Style TargetType="Entry">
<Setter Property="BackgroundColor" Value="Yellow" />
<Setter Property="FontAttributes" Value="Italic" />
<Setter Property="TextColor" Value="Blue" />
</Style>
</ResourceDictionary>
</Application.Resources>
</Application>
|
Observe que agora estamos usando estilos implícitos onde definimos apenas o TargetType e não estamos definindo um identificador (x:key) para os estilos.
Agora basta alterar o código do arquivo MainPage.xaml conforme a seguir:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XF_Estilos"
x:Class="XF_Estilos.MainPage">
<ContentPage.Content>
<StackLayout>
<Label Text="Nome" />
<Entry />
<Label Text="Sobrenome" />
<Entry />
<Label Text="Endereco" />
<Entry />
<Label Text="Cidade" />
<Entry />
<Label Text="Estado" />
<Entry />
<Label Text="Email" />
<Entry />
</StackLayout>
</ContentPage.Content>
</ContentPage>
|
Agora sim, vemos que o código XAML ficou muito mais simples.
Na próxima parte do artigo veremos como usar estilos com o recurso DynamicResource.
Porque Deus enviou o seu Filho ao mundo,
não para que condenasse o mundo, mas para que o mundo fosse salvo por ele.
Quem crê nele não é condenado; mas quem não crê já está condenado, porquanto não
crê no nome do unigênito Filho de Deus.
João 3:17,18
Xamarim Studio - Desenvolvimento Multiplataforma com C# (Android, iOS e Windows)
Xamarim - Criando Apps com o Visual Studio e C# (vídeo aula)