SolidColorBrush Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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"/>
- Herencia
- Atributos
Requisitos de Windows
Familia de dispositivos |
Windows 10 (se introdujo en la versión 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)
|
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 la extensión de marcado {ThemeResource} .
<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" de la siguiente manera:
<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>
- Seleccione un color personalizado de un intervalo de colores de 24 bits que consta de cantidades elegidas de rojo, verde y azul mediante un código de color 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>
- También puede especificar un color personalizado con una opacidad especificada estableciendo la propiedad deseada en un código de color ARGB en 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>
Los pinceles de color sólido se pueden crear en código subyacente mediante la creación de instancias de un objeto SolidColorBrush con un color predefinido de la estructura Colors .
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 resulta ú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. Los eventos de puntero, gestos, etc. que se produzcan en ese punto del espacio de coordenadas de la interfaz de usuario solo se pueden 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 SolidColorBrush que use el valor Transparente y, aunque esto no aplica visualmente ningún cambio a la interfaz de usuario (es transparente), ese punto es detectable 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 la creación de regiones de superposición en elementos de interfaz de usuario en los que desea interceptar las pruebas de posicionamiento con un elemento como un rectángulo, borde o panel. Es posible que lo haga 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 el destino de propiedad para animar solo el valor Color , usando uno de los tipos de animación dedicados que pueden animar un valor color . Esto suele implicar que .(SolidColorBrush.Color)
forme 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 brush , consulta Animaciones con guion gráfico.
SolidColorBrush es un objeto que se puede compartir, como son los otros tipos derivados de Brush , como LinearGradientBrush e ImageBrush. Dado que es compartible, un SolidColorBrush se define a veces en XAML como un recurso en un ResourceDictionary XAML. La ventaja de usar recursos que se pueden compartir desde XAML es que solo se crea el valor una vez y se aplica 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 como se esperaba 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 anime 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 mostrada 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 de 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 ahora se comparte como un recurso común que proporciona valores para varias partes del gráfico de objetos.
Si examinas las definiciones de plantilla 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 tu 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 |
Obtiene el CoreDispatcher al que está asociado este objeto. CoreDispatcher representa una instalación que puede acceder a DependencyObject en el subproceso de la 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 mediante una llamada a RegisterPropertyChangedCallback. (Heredado de DependencyObject) |