Compartilhar via


SolidColorBrush Classe

Definição

Pinta uma área com uma cor sólida. A cor sólida é definida por um valor Color .

public ref class SolidColorBrush sealed : Brush
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Xaml.Media.ISolidColorBrushFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.UI.Xaml.Markup.ContentProperty(Name="Color")]
class SolidColorBrush final : Brush
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.UI.Xaml.Markup.ContentProperty(Name="Color")]
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Xaml.Media.ISolidColorBrushFactory, 65536, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class SolidColorBrush final : Brush
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Xaml.Media.ISolidColorBrushFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.UI.Xaml.Markup.ContentProperty(Name="Color")]
public sealed class SolidColorBrush : Brush
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.UI.Xaml.Markup.ContentProperty(Name="Color")]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Xaml.Media.ISolidColorBrushFactory), 65536, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class SolidColorBrush : Brush
Public NotInheritable Class SolidColorBrush
Inherits Brush
<SolidColorBrush .../>
-or-
<SolidColorBrush>colorString</SolidColorBrush>
- or -
<SolidColorBrush Color="predefinedColorName"/>
- or -
<SolidColorBrush Color="#rgb"/>
- or -
<SolidColorBrush Color="#argb"/>
- or -
<SolidColorBrush Color="#rrggbb"/>
- or -
<SolidColorBrush Color="#aarrggbb"/>
- or -
<SolidColorBrush Color="sc#scR,scG,scB"/>
- or -
<SolidColorBrush Color="sc#scA,scR,scG,scB"/>
Herança
Object Platform::Object IInspectable DependencyObject Brush SolidColorBrush
Atributos

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)

Exemplos

A maneira mais comum de usar SolidColorBrush é definir um elemento XAML como um recurso em um ResourceDictionary e, em seguida, referenciar esse recurso posteriormente de outras partes de definições de interface do usuário, estilos ou modelos usando a extensão de marcação {StaticResource} ou as extensões de marcação {ThemeResource} .

<ResourceDictionary>
...
    <SolidColorBrush x:Key="BlockBackgroundBrush" Color="#FF557EB9"/>
...
</ResourceDictionary>
<Border Background="{StaticResource BlockBackgroundBrush}" 
    Width="80" Height="80"/>

Há várias maneiras diferentes de definir um SolidColorBrush como um valor de interface do usuário embutido em vez de como um recurso:

  • Selecione uma cor predefinida por nome e conte com o "atalho" XAML que essa cor criará um SolidColorBrush quando for analisada. Por exemplo, você pode definir o Preenchimento de um Retângulo como "Vermelho" assim:
<Canvas
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <!-- This rectangle's fill is painted with a red SolidColorBrush,
       described using a named color. -->
  <Rectangle Width="100" Height="100" Fill="Red" />
</Canvas>
  • Selecione uma cor personalizada de um intervalo de cores de 24 bits que consiste em quantidades escolhidas de vermelho, verde e azul usando um código de cor RGB hexadecimal:
<Canvas
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <!-- This rectangle's fill is painted with a Red SolidColorBrush,
       described using an RGB-style hex color code. -->
  <Rectangle Width="100" Height="100" Fill="#FF0000" />
</Canvas>
  • Você também pode especificar uma cor personalizada com uma opacidade especificada definindo a propriedade desejada como um código de cor ARGB no formato hexadecimal:
<Canvas
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <!-- This rectangle's fill is painted with a fully opaque red SolidColorBrush,
       described using an ARGB style hex code. -->
  <Rectangle Width="100" Height="100" Fill="#FFFF0000" />
</Canvas>

Pincéis de cores sólidas podem ser criados em code-behind instanciando um objeto SolidColorBrush com uma cor predefinida do struct Colors .

SolidColorBrush greenBrush = new SolidColorBrush(Colors.Green);
Windows::UI::Xaml::Media::SolidColorBrush greenBrush{ Windows::UI::Colors::Green() };
auto greenBrush = ref new SolidColorBrush(Colors::Green);

Outra maneira de definir um novo objeto SolidColorBrush é usar o método utilitário estático FromArgb . Isso será útil se não houver nenhum valor de Cores nomeado para a cor desejada.

SolidColorBrush myBrush = new SolidColorBrush(Color.FromArgb(255, 20, 20, 90));
Windows::UI::Xaml::Media::SolidColorBrush myBrush{ Windows::UI::ColorHelper::FromArgb(255, 90, 200, 90) };
auto myBrush = ref new SolidColorBrush(ColorHelper::FromArgb(255, 90, 200, 90));

Comentários

Um SolidColorBrush é o tipo mais comum de Brush que é usado para muitas propriedades de interface do usuário possíveis que usam um Brush para preencher algumas ou todas as áreas visuais de um objeto na interface do usuário do aplicativo. Exemplos de algumas das propriedades mais usadas que usam um valor Brush incluem: Control.Background, Control.Foreground, Shape.Fill, Control.BorderBrush, Panel.Background, TextBlock.Foreground.

Para essas propriedades, um valor nulo geralmente é aceitável e tem o resultado de que nada é renderizado lá. Se o elemento aparecer no mesmo espaço de coordenadas que outros elementos, o valor nulo de uma propriedade como Background fará com que esse elemento não se registre para fins de teste de ocorrência e determine de onde um evento de entrada deve ser originado. Qualquer evento de ponteiro, gestos ou assim por diante que ocorrem nesse ponto no espaço de coordenadas da interface do usuário só são detectáveis quando há um valor diferente de nulo para a propriedade Brush que influencia a renderização para esse ponto.

Um SolidColorBrush pode ser criado que usa o valor Transparent e, embora isso não aplique visualmente nenhuma alteração à interface do usuário (é transparente), esse ponto é detectável para fins de teste de ocorrência. Portanto, isso é diferente de uma propriedade Brush com um valor nulo . Um pincel Transparente pode ser útil para técnicas como a criação de regiões de sobreposição sobre elementos da interface do usuário em que você deseja interceptar o teste de clique com um elemento como rectangle, borda ou painel. Você poderá fazer isso se os elementos abaixo não forem capazes de fazer seus próprios testes de ocorrência, mas você ainda quiser detectar eventos de entrada. Para obter mais informações sobre o teste de clique, consulte a seção "Teste de clique" das interações do mouse.

As propriedades que usam pincéis podem ser animadas como parte de transições ou animações decorativas. Normalmente, você não anima um objeto SolidColorBrush inteiro, teria que usar uma animação de objeto discreta e isso não é eficiente nem estético. Em vez disso, você usa o direcionamento de propriedade para animar apenas o valor Color , usando um dos tipos de animação dedicados que podem animar um valor Color . Isso geralmente envolve fazer .(SolidColorBrush.Color) parte do valor Storyboard.TargetProperty . Para obter mais informações sobre direcionamento de propriedade e como animar propriedades que usam SolidColorBrush ou outros valores brush , consulte Animações storyboarded.

Um SolidColorBrush é um objeto compartilhável, assim como os outros tipos derivados de Brush , como LinearGradientBrush e ImageBrush. Como ele é compartilhável, um SolidColorBrush às vezes é definido em XAML como um recurso em um ResourceDictionary XAML. A vantagem de usar recursos compartilháveis do XAML é que você só está criando o valor uma vez e aplicando-o a várias propriedades.

A aplicação de um valor UIElement.Opacity pode alterar a aparência da cor de uma propriedade SolidColorBrush aplicada a um objeto . O valor UIElement.Opacity pode ser cumulativo dependendo do layout dos objetos que se sobrepõem. As cores aparecem conforme o esperado somente quando o valor de Opacidade da rede é 1. Também há uma propriedade Brush.Opacity que pode afetar a cor aparente da mesma forma. Brush.Opacity geralmente é deixado com seu valor padrão de 1, a menos que esteja sendo deliberadamente animado para um efeito fade-in ou fade-out.

Pincéis como recursos XAML

Cada um dos tipos brush que podem ser declarados em XAML (SolidColorBrush, LinearGradientBrush, ImageBrush) destina-se a ser definido como um recurso, para que você possa reutilizar esse pincel como um recurso em todo o aplicativo. A sintaxe XAML mostrada para tipos brush é apropriada para definir o pincel como um recurso. Quando você declara um pincel como um recurso, também precisa de um atributo x:Key que você usará posteriormente para se referir a esse recurso de outras definições de interface do usuário. Para obter mais informações sobre recursos XAML e como usar o atributo x:Key, consulte Referências de recursos ResourceDictionary e XAML.

A vantagem de declarar pincéis como recursos é que ele reduz o número de objetos de runtime necessários para construir uma interface do usuário: o pincel agora é compartilhado como um recurso comum que fornece valores para várias partes do grafo do objeto.

Se você examinar as definições de modelo de controle existentes para Windows Runtime controles XAML, verá que os modelos usam recursos de pincel extensivamente. Muitos desses recursos são recursos do sistema e usam a extensão de marcação {ThemeResource} para a referência de recurso em vez da extensão de marcação {StaticResource}. Para obter mais informações sobre como usar pincéis de recursos do sistema em seu próprio modelo de controle XAML, consulte Recursos de tema XAML.

Construtores

SolidColorBrush()

Inicializa uma nova instância da classe SolidColorBrush sem cor.

SolidColorBrush(Color)

Inicializa uma nova instância da classe SolidColorBrush com a Cor especificada.

Propriedades

Color

Obtém ou define a cor deste SolidColorBrush.

ColorProperty

Identifica a propriedade de dependência Color .

Dispatcher

Obtém o CoreDispatcher ao qual esse objeto está associado. O CoreDispatcher representa uma instalação que pode acessar DependencyObject no thread da interface do usuário mesmo que o código seja iniciado por um thread que não seja da interface do usuário.

(Herdado de DependencyObject)
Opacity

Obtém ou define o grau de opacidade de um pincel.

(Herdado de Brush)
RelativeTransform

Obtém ou define a transformação que é aplicada ao pincel, usando coordenadas relativas.

(Herdado de Brush)
Transform

Obtém ou define a transformação que é aplicada ao pincel.

(Herdado de Brush)

Métodos

ClearValue(DependencyProperty)

Limpa o valor local de uma propriedade de dependência.

(Herdado de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Retorna qualquer valor base estabelecido para uma propriedade de dependência, que se aplicaria nos casos em que uma animação não está ativa.

(Herdado de DependencyObject)
GetValue(DependencyProperty)

Retorna o valor efetivo atual de uma propriedade de dependência de um DependencyObject.

(Herdado de DependencyObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Define uma propriedade que pode ser animada.

(Herdado de Brush)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

Quando substituído em uma classe derivada, define uma propriedade que pode ser animada.

(Herdado de Brush)
ReadLocalValue(DependencyProperty)

Retorna o valor local de uma propriedade de dependência, se um valor local for definido.

(Herdado de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra uma função de notificação para escutar alterações em uma DependencyProperty específica nesta instância dependencyObject .

(Herdado de DependencyObject)
SetValue(DependencyProperty, Object)

Define o valor local de uma propriedade de dependência em um DependencyObject.

(Herdado de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancela uma notificação de alteração que foi registrada anteriormente chamando RegisterPropertyChangedCallback.

(Herdado de DependencyObject)

Aplica-se a

Confira também