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 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>
<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 di 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 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 per determinare da dove 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à 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 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 |
Restituisce |
DispatcherQueue |
Ottiene l'oggetto a cui è associato 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 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) |