Neste artigo vou apresentar o Visual State Manager que foi introduzido na versão 3.0 do Xamarin Forms. |
Continuando a primeira parte do artigo veremos como implementar o Visual State Manager usando estilos.
Geralmente, é necessário compartilhar a mesma marcação do Visual State Manager entre duas ou mais views. Nesse caso, é mais indicado colocar a marcação em uma definição de estilo.
Neste exemplo vamos definir 3 views Entry :
A view Entry normal;
A view Entry usando o VSM;
A view Entry que iremos usar para habilitar a 2a. view Entry;
A seguir vamos definir um estilo que vai ser aplicado a todas as views Entry.
Recursos Usados
Usando o projeto Xamarin.Forms
Vamos usar o projeto XF_VSM1 criado no artigo anterior e incluir uma nova Content Page com o nome VSMPage1.xaml.
Para poder exibir esta página basta alterar o código do arquivo App.xaml.cs conforme abaixo:
....
public App ()
{
InitializeComponent();
MainPage = new VSMPage1();
}
...
|
1- Definindo a marcação VSM usando estilos
Vamos definir o código abaixo no arquivo VSMPage1.xaml :
|
No código estamos definindo três views Entry e um Trigger que esta vinculado a view Entry de nome 'entry3' que vai permitir habilitar a 2a via Entry.
Vamos agora definir a marcação do VSM criando um estilo conforme mostra o código abaixo:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XF_VSM1.VSMPage1">
<StackLayout>
<StackLayout.Resources>
<Style TargetType="Entry">
<Setter Property="Margin" Value="20, 0" />
<Setter Property="FontSize" Value="18" />
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal">
<VisualState.Setters>
<Setter Property="BackgroundColor" Value="LigthYellow"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Focused">
<VisualState.Setters>
<Setter Property="FontSize" Value="Medium" />
<Setter Property="BackgroundColor" Value="LightSalmon" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Disabled">
<VisualState.Setters>
<Setter Property="BackgroundColor" Value="LightCoral"/>
<Setter Property="Text" Value="Desabilitado"/>
<Setter Property="TextColor" Value="White"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
<Style TargetType="Label">
<Setter Property="Margin" Value="20, 10, 20, 0" />
<Setter Property="FontSize" Value="Large" />
</Style>
</StackLayout.Resources>
<Label Text="Entry Normal :" />
<Entry />
<Label Text="Entry com VSM :" />
<Entry>
<Entry.Triggers>
<DataTrigger TargetType="Entry"
Binding="{Binding Source={x:Reference entry3},Path=Text.Length}"
Value="0">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Entry.Triggers>
</Entry>
<Label Text="Entry para habilitar a 2a. Entry:" />
<Entry x:Name="entry3"
Text=""
Placeholder="Digite algo para habilitar a 2a. Entry" />
</StackLayout>
</ContentPage>
|
No estilo definido praticamente repetimos a marcação que já explicamos na primeira parte do artigo.
Agora, todas as views Entry desta página respondem da mesma maneira aos seus estados visuais.
Executando o projeto teremos o seguinte resultado:
Na próxima parte do artigo veremos como criar seu próprio estado visual.
Pegue o código do projeto compartilhado aqui: XF_VSM2.zip
"Sabendo que, se o
nosso coração nos condena, maior é Deus do que o nosso coração, e conhece todas
as coisas."
1 João 3:20
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Xamarin Android - Apresentando o controle ProgressBar - Macoratti.net
Xamarin Android - Usando o serviço de Alarme - Macoratti.net
Xamarin.Forms - Usando a view ActivityIndicator - Macoratti.net
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/visual-state-manager