SolidColorBrush Classe

Definizione

Disegna un'area con un colore a tinta unita. Il colore a tinta unita è definito da un valore 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"/>
Ereditarietà
Object Platform::Object IInspectable DependencyObject Brush SolidColorBrush
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

Il modo più comune per usare SolidColorBrush consiste nel definire un elemento XAML come risorsa in resourceDictionary e quindi fare riferimento a tale risorsa in un secondo momento da altre parti delle definizioni dell'interfaccia utente, stili o modelli usando l'estensione di markup {StaticResource} o l'estensione di markup {ThemeResource} .

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

Esistono diversi modi per definire un oggetto SolidColorBrush come valore dell'interfaccia utente inline anziché come risorsa:

  • Selezionare un colore predefinito in base al nome e basarsi sul "collegamento" XAML che questo colore creerà un Oggetto SolidColorBrush quando viene analizzato. Ad esempio, è possibile impostare Il riempimento di un rettangolo su "Rosso" come segue:
<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>
  • Selezionare un colore personalizzato da un intervallo di colori a 24 bit costituito da quantità scelte di colore rosso, verde e blu usando un codice colore RGB esadecimale:
<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>
  • È anche possibile specificare un colore personalizzato con un'opacità specificata impostando la proprietà desiderata su un codice colore ARGB in formato esadecimale:
<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>

I pennelli a tinta unita possono essere creati nel code-behind creando un'istanza di un oggetto SolidColorBrush con un colore predefinito dallo 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);

Un altro modo per definire un nuovo oggetto SolidColorBrush consiste nell'usare il metodo dell'utilità statica FromArgb . Ciò è utile se non è presente alcun valore denominato Colors per il colore desiderato.

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

Commenti

Un oggetto SolidColorBrush è il tipo più comune di Brush usato per molte possibili proprietà dell'interfaccia utente che usano un oggetto Brush per riempire un'area visiva di un oggetto nell'interfaccia utente dell'app. Esempi di alcune delle proprietà più usate che usano un valore Brush includono : Control.Background, Control.Foreground, Shape.Fill, Control.BorderBrush, Panel.Background, TextBlock.Foreground.

Per queste proprietà, un valore Null è spesso accettabile e ha il risultato che non viene eseguito alcun rendering. Se l'elemento viene visualizzato nello stesso spazio di coordinate di altri elementi, il valore Null per una proprietà, ad esempio Background , fa sì che tale elemento non venga registrato ai fini dell'hit testing e determina la posizione da cui deve essere originato un evento di input. Tutti gli eventi puntatore, i movimenti o così via che si verificano in quel punto nello spazio delle coordinate dell'interfaccia utente sono rilevabili solo quando è presente un valore diverso da Null per la proprietà Brush che influisce sul rendering per tale punto.

È possibile creare un oggetto SolidColorBrush che usa il valore Transparent e, anche se questa operazione non applica visivamente alcuna modifica all'interfaccia utente (è trasparente), tale punto è rilevabile a scopo di hit testing. Questo è quindi diverso da una proprietà Brush con un valore Null . Un pennello Trasparente può essere utile per tecniche come la creazione di aree di sovrapposizione sugli elementi dell'interfaccia utente in cui si vuole intercettare l'hit testing con un elemento come Rettangolo, Bordo o pannello. Questa operazione può essere eseguita se gli elementi sottostanti non sono in grado di eseguire i propri hit testing, ma si vogliono comunque rilevare gli eventi di input. Per altre info sull'hit testing, vedi la sezione "Hit testing" delle interazioni con il mouse.

Le proprietà che usano pennelli possono essere animate come parte di transizioni o animazioni decorative. In genere non devi animare un intero oggetto SolidColorBrush, devi usare un'animazione Object discreta e questo non è né efficiente né estetico. Usa invece la destinazione delle proprietà per animare solo il valore Color , usando uno dei tipi di animazione dedicati che possono animare un valore Color . Ciò comporta in genere la presenza .(SolidColorBrush.Color) di una parte del valore Storyboard.TargetProperty . Per altre info sulla destinazione delle proprietà e su come animare le proprietà che usano SolidColorBrush o altri valori di Brush , vedi Animazioni con storyboard.

Un oggetto SolidColorBrush è un oggetto condivisibile, come gli altri tipi derivati di Brush , ad esempio LinearGradientBrush e ImageBrush. Poiché è condivisibile, SolidColorBrush è talvolta definito in XAML come risorsa in un ResourceDictionary XAML. Il vantaggio dell'uso di risorse condivisibili da XAML è la creazione del valore una sola volta e l'applicazione a più proprietà.

L'applicazione di un valore UIElement.Opacity può modificare l'aspetto del colore di una proprietà SolidColorBrush applicata a un oggetto . Il valore UIElement.Opacity può essere cumulativo a seconda del layout degli oggetti che si sovrappongono. I colori vengono visualizzati come previsto solo quando il valore di Opacità netta è 1. Esiste anche una proprietà Brush.Opacity che può influire sul colore apparente in modo analogo. Brush.Opacity viene in genere lasciato al valore predefinito 1, a meno che non venga deliberatamente animato per un effetto dissolvenza in dissolvenza o dissolvenza.

Pennelli come risorse XAML

Ognuno dei tipi Brush che possono essere dichiarati in XAML (SolidColorBrush, LinearGradientBrush, ImageBrush) è progettato per essere definito come risorsa, in modo da poter riutilizzare tale pennello come risorsa nell'intera app. La sintassi XAML illustrata per i tipi brush è appropriata per definire il pennello come risorsa. Quando dichiari un pennello come risorsa, è necessario anche un attributo x:Key che verrà usato in seguito per fare riferimento a tale risorsa da altre definizioni dell'interfaccia utente. Per altre info sulle risorse XAML e su come usare l'attributo x:Key, vedi Riferimenti alle risorse ResourceDictionary e XAML.

Il vantaggio di dichiarare i pennelli come risorse è che riduce il numero di oggetti di runtime necessari per costruire un'interfaccia utente: il pennello è ora condiviso come risorsa comune che fornisce valori per più parti del grafico degli oggetti.

Se si esaminano le definizioni dei modelli di controllo esistenti per Windows Runtime controlli XAML, si noterà che i modelli usano ampiamente le risorse pennello. Molte di queste risorse sono risorse di sistema e usano l'estensione di markup {ThemeResource} per il riferimento alle risorse anziché l'estensione di markup {StaticResource}. Per altre info su come usare i pennelli delle risorse di sistema nel codice XAML del modello di controllo, vedi Risorse del tema XAML.

Costruttori

SolidColorBrush()

Inizializza una nuova istanza della classe SolidColorBrush senza colore.

SolidColorBrush(Color)

Inizializza una nuova istanza della classe SolidColorBrush con l'oggetto Color specificato.

Proprietà

Color

Ottiene o imposta il colore di questo oggetto SolidColorBrush.

ColorProperty

Identifica la proprietà di dipendenza Color .

Dispatcher

Ottiene coreDispatcher a cui è associato questo oggetto. CoreDispatcher rappresenta una funzionalità che può accedere a DependencyObject nel thread dell'interfaccia utente anche se il codice viene avviato da un thread non dell'interfaccia utente.

(Ereditato da DependencyObject)
Opacity

Ottiene o imposta il grado di opacità di un oggetto Brush.

(Ereditato da Brush)
RelativeTransform

Ottiene o imposta la trasformazione applicata al pennello usando coordinate relative.

(Ereditato da Brush)
Transform

Ottiene o imposta la trasformazione applicata al pennello.

(Ereditato da Brush)

Metodi

ClearValue(DependencyProperty)

Cancella il valore locale di una proprietà di dipendenza.

(Ereditato da DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Restituisce qualsiasi valore di base stabilito per una proprietà di dipendenza, che si applica nei casi in cui un'animazione non è attiva.

(Ereditato da DependencyObject)
GetValue(DependencyProperty)

Restituisce il valore effettivo corrente di una proprietà di dipendenza da dependencyObject.

(Ereditato da DependencyObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Definisce una proprietà che può essere animata.

(Ereditato da Brush)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

In caso di override in una classe derivata, definisce una proprietà che può essere animata.

(Ereditato da Brush)
ReadLocalValue(DependencyProperty)

Restituisce il valore locale di una proprietà di dipendenza, se è impostato un valore locale.

(Ereditato da DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una funzione di notifica per l'ascolto delle modifiche apportate a una dipendenza specifica in questa istanza di DependencyObject .

(Ereditato da DependencyObject)
SetValue(DependencyProperty, Object)

Imposta il valore locale di una proprietà di dipendenza su dependencyObject.

(Ereditato da DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Annulla una notifica di modifica registrata in precedenza chiamando RegisterPropertyChangedCallback.

(Ereditato da DependencyObject)

Si applica a

Vedi anche