SolidColorBrush Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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"/>
- Ereditarietà
- Attributi
Esempio
Il modo più comune per usare SolidColorBrush consiste nel definire un elemento XAML come risorsa in un ResourceDictionary e quindi fare riferimento a tale risorsa in un secondo momento da altre parti di definizioni dell'interfaccia utente, stili o modelli usando l'estensione di markup {StaticResource} o {ThemeResource} estensione di markup s.
<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 fare affidamento sul "collegamento" XAML che questo colore creerà un oggetto SolidColorBrush quando viene analizzato. Ad esempio, è possibile impostare 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>
<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>
- Creare un colore all'interno di una tavolozza dei colori a 32 bit specificando le quantità di rosso, verde e blu da combinare in un singolo colore a tinta unita.
<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);
Un altro modo per definire un nuovo oggetto SolidColorBrush consiste nell'usare il metodo di utilità statica FromArgb . Ciò è utile se non è presente alcun valore Colors denominato 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
SolidColorBrush è il tipo più comune di Brush usato per molte possibili proprietà dell'interfaccia utente che usano Un pennello per riempire un'area visiva di un oggetto o 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 provenienza di un evento di input. Tutti gli eventi del 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 influenza il rendering per tale punto.
È possibile creare un oggetto SolidColorBrush che usa il valore Transparent e, anche se 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 test, ma si vuole 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 delle transizioni o delle animazioni decorative. In genere non si anima un intero oggetto SolidColorBrush, è necessario usare un'animazione Object discreta e non è né efficiente né estetica. 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 . Questo 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 brush , vedi Animazioni con storyboard.
SolidColorBrush è un oggetto condivisibile, come sono gli altri tipi derivati di Brush , ad esempio LinearGradientBrush e ImageBrush. Poiché è condivisibile un Oggetto SolidColorBrush viene talvolta definito in XAML come risorsa in un ResourceDictionary XAML. Il vantaggio dell'uso di risorse condivisibili da XAML è che stai creando il valore una sola volta e applicandolo 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à netto è 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 uscita o dissolvenza.
Pennelli come risorse XAML
Ognuno dei tipi Brush che possono essere dichiarati in XAML (SolidColorBrush, LinearGradientBrush, ImageBrush) deve essere definito come risorsa, in modo da poter riutilizzare tale pennello come risorsa nell'intera app. La sintassi XAML mostrata per i tipi Brush è appropriata per definire il pennello come risorsa. Quando dichiari un pennello come risorsa, devi anche usare un attributo x:Key che in seguito userai 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 viene 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
| Nome | Descrizione |
|---|---|
| SolidColorBrush() |
Inizializza una nuova istanza della classe SolidColorBrush senza colori. |
| SolidColorBrush(Color) |
Inizializza una nuova istanza della classe SolidColorBrush con il colore specificato. |
Proprietà
| Nome | Descrizione |
|---|---|
| Color |
Ottiene o imposta il colore dell'oggetto SolidColorBrush. |
| ColorProperty |
Identifica la proprietà di dipendenza Color . |
| Dispatcher |
Restituisce |
| DispatcherQueue |
Ottiene l'oggetto |
| Opacity |
Ottiene o imposta il grado di opacità di un oggetto Brush. (Ereditato da Brush) |
| RelativeTransform |
Ottiene o imposta la trasformazione applicata al pennello utilizzando coordinate relative. (Ereditato da Brush) |
| Transform |
Ottiene o imposta la trasformazione applicata al pennello. (Ereditato da Brush) |
Metodi
| Nome | Descrizione |
|---|---|
| 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) |
Quando sottoposto a 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 a una dipendenza specifica in questa istanza dependencyObject . (Ereditato da DependencyObject) |
| SetValue(DependencyProperty, Object) |
Imposta il valore locale di una proprietà di dipendenza in un Oggetto DependencyObject. (Ereditato da DependencyObject) |
| UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Annulla una notifica di modifica registrata in precedenza chiamando RegisterPropertyChangedCallback. (Ereditato da DependencyObject) |