SolidColorBrush Clase

Definición

Pinta un área con un color sólido. El color sólido se define mediante un valor Color .

public ref class SolidColorBrush sealed : Brush
/// [Microsoft.UI.Xaml.Markup.ContentProperty(Name="Color")]
/// [Windows.Foundation.Metadata.Activatable(Microsoft.UI.Xaml.Media.ISolidColorBrushFactory, 65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SolidColorBrush final : Brush
[Microsoft.UI.Xaml.Markup.ContentProperty(Name="Color")]
[Windows.Foundation.Metadata.Activatable(typeof(Microsoft.UI.Xaml.Media.ISolidColorBrushFactory), 65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
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"/>
Herencia
Object Platform::Object IInspectable DependencyObject Brush SolidColorBrush
Atributos

Ejemplos

La manera más común de usar SolidColorBrush es definir un elemento XAML como un recurso en un ResourceDictionary y, a continuación, hacer referencia a ese recurso más adelante desde otras partes de definiciones de interfaz de usuario, estilos o plantillas mediante la extensión de marcado {StaticResource} o {ThemeResource} extensión de marcado s.

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

Hay varias maneras diferentes de definir un solidColorBrush como un valor de interfaz de usuario insertado en lugar de como un recurso:

  • Seleccione un color predefinido por nombre y confíe en el "acceso directo" XAML que este color creará un SolidColorBrush cuando se analice. Por ejemplo, puede establecer el relleno de un rectángulo en "Rojo" como este:
<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>
<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>
  • Cree un color dentro de una paleta de colores de 32 bits especificando las cantidades de rojo, verde y azul que se combinarán en un único color sólido.
<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>
<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>
SolidColorBrush greenBrush = new SolidColorBrush(Colors.Green);
Windows::UI::Xaml::Media::SolidColorBrush greenBrush{ Windows::UI::Colors::Green() };
auto greenBrush = ref new SolidColorBrush(Colors::Green);

Otra manera de definir un nuevo objeto SolidColorBrush es usar el método de utilidad estática FromArgb . Esto es útil si no hay ningún valor de colores con nombre para el color que desee.

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));

Comentarios

SolidColorBrush es el tipo más común de Brush que se usa para muchas propiedades de interfaz de usuario posibles que usan un pincel para rellenar parte o todo el área visual de un objeto en la interfaz de usuario de la aplicación. Algunos ejemplos de algunas de las propiedades más usadas que usan un valor Brush son: Control.Background, Control.Foreground, Shape.Fill, Control.BorderBrush, Panel.Background, TextBlock.Foreground.

Para estas propiedades, un valor NULL suele ser aceptable y tiene el resultado de que no se representa nada allí. Si el elemento aparece en el mismo espacio de coordenadas que otros elementos, el valor NULL de una propiedad como Background hace que ese elemento no se registre con fines de pruebas de posicionamiento y determine dónde se debe originar un evento de entrada. Cualquier evento de puntero, gestos u otros que se produzcan en ese punto en el espacio de coordenadas de la interfaz de usuario solo se puede detectar cuando hay un valor distinto de NULL para la propiedad Brush que influye en la representación de ese punto.

Se puede crear un objeto SolidColorBrush que use el valor Transparente y, aunque esto no aplica visualmente ningún cambio a la interfaz de usuario (es transparente), ese punto se puede detectar con fines de prueba de posicionamiento. Por lo tanto, esto es diferente de una propiedad Brush con un valor NULL . Un pincel transparente puede ser útil para técnicas como crear regiones de superposición sobre elementos de la interfaz de usuario en los que desea interceptar las pruebas de posicionamiento con un elemento como un rectángulo, borde o panel. Puede hacerlo si los elementos debajo no pueden realizar sus propias pruebas de posicionamiento, pero aún desea detectar eventos de entrada. Para obtener más información sobre las pruebas de posicionamiento, consulta la sección "Pruebas de posicionamiento" de interacciones del mouse.

Las propiedades que usan pinceles se pueden animar como parte de transiciones o animaciones decorativas. Normalmente no animas un objeto SolidColorBrush completo, tendrías que usar una animación de objeto discreta y eso no es eficaz ni estético. En su lugar, se usa la propiedad dirigida para animar solo el valor color , usando uno de los tipos de animación dedicados que pueden animar un valor color . Normalmente, esto implica tener .(SolidColorBrush.Color) una parte del valor Storyboard.TargetProperty . Para obtener más información sobre el destino de propiedades y cómo animar propiedades que usan SolidColorBrush u otros valores de Brush , consulta Animaciones con guion gráfico.

SolidColorBrush es un objeto que se puede compartir, como los otros tipos derivados de Brush , como LinearGradientBrush y ImageBrush. Dado que se puede compartir un objeto SolidColorBrush a veces se define en XAML como un recurso en un ResourceDictionary XAML. La ventaja de usar recursos que se pueden compartir de XAML es que solo estás creando el valor una vez y aplicándolo a varias propiedades.

La aplicación de un valor UIElement.Opacity puede cambiar la apariencia de color de una propiedad SolidColorBrush aplicada a un objeto. El valor UIElement.Opacity puede ser acumulativo en función del diseño de los objetos que se superpongan. Los colores aparecen según lo esperado solo cuando el valor de opacidad neto es 1. También hay una propiedad Brush.Opacity que puede afectar al color aparente de forma similar. Brush.Opacity suele dejarse en su valor predeterminado de 1, a menos que se esté animando deliberadamente para un efecto de atenuación o atenuación.

Pinceles como recursos XAML

Cada uno de los tipos brush que se pueden declarar en XAML (SolidColorBrush, LinearGradientBrush, ImageBrush) está diseñado para definirse como un recurso, de modo que pueda reutilizar ese pincel como un recurso en toda la aplicación. La sintaxis XAML que se muestra para los tipos Brush es adecuada para definir el pincel como un recurso. Al declarar un pincel como un recurso, también necesita un atributo x:Key que usará más adelante para hacer referencia a ese recurso desde otras definiciones de interfaz de usuario. Para obtener más información sobre los recursos XAML y cómo usar el atributo x:Key, consulta Referencias a recursos ResourceDictionary y XAML.

La ventaja de declarar pinceles como recursos es que reduce el número de objetos en tiempo de ejecución necesarios para construir una interfaz de usuario: el pincel se comparte ahora como un recurso común que proporciona valores para varias partes del gráfico de objetos.

Si examinas las definiciones de plantillas de control existentes para Windows Runtime controles XAML, verás que las plantillas usan recursos de pincel ampliamente. Muchos de estos recursos son recursos del sistema y usan la extensión de marcado {ThemeResource} para la referencia de recursos en lugar de la extensión de marcado {StaticResource}. Para obtener más información sobre cómo usar pinceles de recursos del sistema en su propio XAML de plantilla de control, consulta Recursos de temas XAML.

Constructores

SolidColorBrush()

Inicializa una nueva instancia de la clase SolidColorBrush sin color.

SolidColorBrush(Color)

Inicializa una nueva instancia de la clase SolidColorBrush con el color especificado.

Propiedades

Color

Obtiene o establece el color de este SolidColorBrush.

ColorProperty

Identifica la propiedad de dependencia Color .

Dispatcher

Siempre devuelve null en una aplicación de SDK de Aplicaciones para Windows. Use DispatcherQueue en su lugar.

(Heredado de DependencyObject)
DispatcherQueue

Obtiene el objeto DispatcherQueue al que está asociado este objeto. DispatcherQueue representa una instalación que puede acceder al DependencyObject en el subproceso de interfaz de usuario incluso si un subproceso que no es de interfaz de usuario inicia el código.

(Heredado de DependencyObject)
Opacity

Obtiene o establece el grado de opacidad de un pincel.

(Heredado de Brush)
RelativeTransform

Obtiene o establece la transformación que se aplica al pincel mediante coordenadas relativas.

(Heredado de Brush)
Transform

Obtiene o establece la transformación que se aplica al pincel.

(Heredado de Brush)

Métodos

ClearValue(DependencyProperty)

Borra el valor local de una propiedad de dependencia.

(Heredado de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Devuelve cualquier valor base establecido para una propiedad de dependencia, que se aplicaría en los casos en los que una animación no está activa.

(Heredado de DependencyObject)
GetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia de dependencyObject.

(Heredado de DependencyObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Define una propiedad que se puede animar.

(Heredado de Brush)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

Cuando se invalida en una clase derivada, define una propiedad que se puede animar.

(Heredado de Brush)
ReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si se establece un valor local.

(Heredado de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una función de notificación para escuchar los cambios en una dependencyProperty específica en esta instancia de DependencyObject .

(Heredado de DependencyObject)
SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia en dependencyObject.

(Heredado de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancela una notificación de cambio registrada anteriormente llamando a RegisterPropertyChangedCallback.

(Heredado de DependencyObject)

Se aplica a

Consulte también