Compartilhar via


Xamarin.Forms Pincéis: Gradientes

A GradientBrush classe deriva Brush da classe e é uma classe abstrata que descreve um gradiente, que é composto de paradas de gradiente. Um pincel de gradiente pinta uma área com várias cores que se mesclam ao longo de um eixo. As classes derivadas de GradientBrush descrevem diferentes maneiras de interpretar paradas de gradiente e fornecem os seguintes pincéis de gradiente Xamarin.Forms :

A GradientBrush classe define a GradientStops propriedade, do tipo GradientStopsCollection, que representa as paradas de gradiente do pincel, cada uma das quais especifica uma cor e um deslocamento ao longo do eixo de gradiente do pincel. A GradientStopsCollection é um ObservableCollection dos GradientStop objetos. A GradientStops propriedade é apoiada por um BindableProperty objeto, o que significa que ele pode ser o destino de associações de dados e estilizado.

Observação

A GradientStops propriedade é a ContentProperty da GradientBrush classe e, portanto, não precisa ser definida explicitamente a partir de XAML.

Marcas de gradiente

As paradas de gradiente são os blocos de construção de um pincel de gradiente e especificam as cores no gradiente e sua localização ao longo do eixo do gradiente. As paradas de gradiente são especificadas usando GradientStop objetos.

A classe GradientStop define as seguintes propriedades:

  • Color, do tipo Color, que representa a cor da parada de gradiente. O valor padrão dessa propriedade é Color.Default.
  • Offset, do tipo float, que representa o local da parada de gradiente dentro do vetor de gradiente. O valor padrão dessa propriedade é 0 e os valores válidos estão no intervalo 0,0-1,0. Quanto mais próximo esse valor estiver de 0, mais próxima a cor estará do início do gradiente. Da mesma forma, quanto mais próximo esse valor estiver de 1, mais próxima a cor estará do final do gradiente.

Essas propriedades são apoiadas por objetos BindableProperty, o que significa que podem ser alvos de associações de dados e ser estilizada.

Importante

O sistema de coordenadas usado pelos gradientes é relativo a uma caixa delimitadora para a área de saída. 0 indica 0% da caixa delimitadora e 1 indica 100% da caixa delimitadora. Portanto, (0,5,0,5) descreve um ponto no meio da caixa delimitadora e (1,1) descreve um ponto no canto inferior direito da caixa delimitadora.

O exemplo XAML a seguir cria uma diagonal LinearGradientBrush com quatro cores:

<LinearGradientBrush StartPoint="0,0"
                     EndPoint="1,1">
    <GradientStop Color="Yellow"
                  Offset="0.0" />
    <GradientStop Color="Red"
                  Offset="0.25" />
    <GradientStop Color="Blue"
                  Offset="0.75" />             
    <GradientStop Color="LimeGreen"
                  Offset="1.0" />
</LinearGradientBrush>                                                       

A cor de cada ponto entre paradas de gradiente é interpolada como uma combinação da cor especificada pelas duas paradas de gradiente delimitadoras. O diagrama a seguir mostra as paradas de gradiente do exemplo anterior:

Quadro pintado com um LinearGradientBrush diagonal

Neste diagrama, os círculos marcam a posição das paradas de gradiente e a linha tracejada mostra o eixo do gradiente. A primeira parada de gradiente especifica a cor amarela em um deslocamento de 0,0. A segunda parada de gradiente especifica a cor vermelha em um deslocamento de 0,25. Os pontos entre essas duas paradas de gradiente mudam gradualmente de amarelo para vermelho à medida que você se move da esquerda para a direita ao longo do eixo do gradiente. A terceira parada de gradiente especifica a cor azul em um deslocamento de 0,75. Os pontos entre a segunda e a terceira marca de gradiente mudam gradualmente de vermelho para azul. A quarta parada de gradiente especifica a cor verde limão no deslocamento de 1,0. Os pontos entre a terceira e a quarta marca de gradiente mudam gradualmente de azul para verde-limão.