SolidColorBrush Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Zeichnet einen Bereich mit einer Volltonfarbe. Die Volltonfarbe wird durch einen Farbwert definiert.
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"/>
- Vererbung
- Attribute
Windows-Anforderungen
Gerätefamilie |
Windows 10 (eingeführt in 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)
|
Beispiele
Die gängigste Methode zur Verwendung von SolidColorBrush besteht darin, ein XAML-Element als Ressource in einem ResourceDictionary zu definieren und dann später aus anderen Teilen von Ui-Definitionen, Formatvorlagen oder Vorlagen mithilfe der {StaticResource}-Markuperweiterung oder der {ThemeResource}-Markuperweiterung auf diese Ressource zu verweisen.
<ResourceDictionary>
...
<SolidColorBrush x:Key="BlockBackgroundBrush" Color="#FF557EB9"/>
...
</ResourceDictionary>
<Border Background="{StaticResource BlockBackgroundBrush}"
Width="80" Height="80"/>
Es gibt verschiedene Möglichkeiten, einen SolidColorBrush als Inline-UI-Wert und nicht als Ressource zu definieren:
- Wählen Sie eine vordefinierte Farbe anhand des Namens aus, und verlassen Sie sich auf die XAML-Verknüpfung, mit der diese Farbe einen SolidColorBrush erstellt, wenn sie analysiert wird. Beispielsweise können Sie die Füllung eines Rechtecks wie folgt auf "Rot" festlegen:
<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>
- Wählen Sie eine benutzerdefinierte Farbe aus einem 24-Bit-Farbbereich aus, der aus ausgewählten Mengen von Rot, Grün und Blau besteht, indem Sie einen hexadezimalen RGB-Farbcode verwenden:
<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>
- Sie können auch eine benutzerdefinierte Farbe mit einer angegebenen Deckkraft angeben, indem Sie die gewünschte Eigenschaft auf einen ARGB-Farbcode im Hexadezimalformat festlegen:
<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>
Einfarbige Pinsel können im CodeBehind erstellt werden, indem ein SolidColorBrush-Objekt mit einer vordefinierten Farbe aus der Colors-Struktur instanziiert wird.
SolidColorBrush greenBrush = new SolidColorBrush(Colors.Green);
Windows::UI::Xaml::Media::SolidColorBrush greenBrush{ Windows::UI::Colors::Green() };
auto greenBrush = ref new SolidColorBrush(Colors::Green);
Eine weitere Möglichkeit zum Definieren eines neuen SolidColorBrush-Objekts ist die Verwendung der statischen Hilfsprogrammmethode FromArgb . Dies ist nützlich, wenn es keinen benannten Farbwert für die gewünschte Farbe gibt.
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));
Hinweise
Ein SolidColorBrush ist der häufigste Typ von Brush , der für viele mögliche UI-Eigenschaften verwendet wird, die einen Brush verwenden, um einen teil oder den gesamten visuellen Bereich eines Objekts in der App-Benutzeroberfläche auszufüllen. Beispiele für einige der am häufigsten verwendeten Eigenschaften, die einen Pinselwert verwenden, sind: Control.Background, Control.Foreground, Shape.Fill, Control.BorderBrush, Panel.Background, TextBlock.Foreground.
Für diese Eigenschaften ist ein NULL-Wert häufig akzeptabel und hat das Ergebnis, dass dort nichts gerendert wird. Wenn das Element im selben Koordinatenraum wie andere Elemente angezeigt wird, bewirkt der NULL-Wert für eine Eigenschaft wie Background , dass sich dieses Element nicht für Zwecke des Treffertests registriert und bestimmt, wo ein Eingabeereignis bezogen werden soll. Zeigerereignisse, Gesten oder so weiter, die an diesem Punkt im Koordinatenraum der Benutzeroberfläche auftreten, können nur erkannt werden, wenn ein anderer Wert als NULL für die Brush-Eigenschaft vorhanden ist, der das Rendering für diesen Punkt beeinflusst.
Es kann ein SolidColorBrush erstellt werden, der den Transparent-Wert verwendet, und obwohl dadurch keine Änderungen visuell auf die Benutzeroberfläche angewendet werden (sie ist transparent), kann dieser Punkt für Treffertests erkannt werden. Dies unterscheidet sich also von einer Brush-Eigenschaft mit einem NULL-Wert . Ein transparenter Pinsel kann nützlich sein für Techniken wie das Erstellen von Überlagerungsbereichen über Ui-Elementen, in denen Sie die Treffertests mit einem Element wie einem Rechteck, Rahmen oder Bereich abfangen möchten. Sie können dies tun, wenn die darunter zugehörigen Elemente nicht in der Lage sind, eigene Treffertests durchzuführen, sie aber trotzdem Eingabeereignisse erkennen möchten. Weitere Informationen zu Treffertests finden Sie im Abschnitt "Treffertests" unter Mausinteraktionen.
Eigenschaften, die Pinsel verwenden, können als Teil von Übergängen oder dekorativen Animationen animiert werden. Sie animieren in der Regel kein gesamtes SolidColorBrush-Objekt, Sie müssen eine diskrete Objektanimation verwenden, und dies ist weder effizient noch ästhetisch. Stattdessen verwenden Sie die Zieleigenschaften, um nur den Wert Color zu animieren, indem Sie einen der dedizierten Animationstypen verwenden, die einen Color-Wert animieren können. Dies beinhaltet in der Regel einen .(SolidColorBrush.Color)
Teil des Storyboard.TargetProperty-Werts . Weitere Informationen zur Ausrichtung auf Eigenschaften und zum Animieren von Eigenschaften, die SolidColorBrush oder andere Pinselwerte verwenden, finden Sie unter Storyboardanimationen.
Ein SolidColorBrush ist ein freigegebenes Objekt, ebenso wie die anderen abgeleiteten Brush-Typen wie LinearGradientBrush und ImageBrush. Da es freigegeben werden kann, wird solidColorBrush manchmal in XAML als Ressource in einem XAML ResourceDictionary definiert. Der Vorteil der Verwendung freigegebener Ressourcen aus XAML besteht darin, dass Sie den Wert nur einmal erstellen und ihn auf mehrere Eigenschaften anwenden.
Das Anwenden eines UIElement.Opacity-Werts kann die Farbdarstellung einer SolidColorBrush-Eigenschaft ändern, die auf ein Objekt angewendet wird. Der UIElement.Opacity-Wert kann abhängig vom Layout von Objekten, die sich überlappen, kumulativ sein. Die Farben werden nur wie erwartet angezeigt, wenn der Netto-Deckkraftwert 1 ist. Es gibt auch eine Brush.Opacity-Eigenschaft , die sich auf die scheinbare Farbe ähnlich auswirken kann. Brush.Opacity wird normalerweise auf dem Standardwert 1 belassen, es sei denn, sie wird absichtlich für einen Einblend- oder Einblendeffekt animiert.
Pinsel als XAML-Ressourcen
Jeder Pinseltyp , der in XAML deklariert werden kann (SolidColorBrush, LinearGradientBrush, ImageBrush), soll als Ressource definiert werden, sodass Sie diesen Pinsel als Ressource in Der gesamten App wiederverwenden können. Die XAML-Syntax, die für Pinseltypen angezeigt wird, eignet sich zum Definieren des Pinsels als Ressource. Wenn Sie einen Pinsel als Ressource deklarieren, benötigen Sie auch ein x:Key-Attribut , das Sie später verwenden, um auf diese Ressource aus anderen Benutzeroberflächendefinitionen zu verweisen. Weitere Informationen zu XAML-Ressourcen und zur Verwendung des x:Key-Attributs finden Sie unter ResourceDictionary- und XAML-Ressourcenverweise.
Der Vorteil der Deklarierung von Pinsel als Ressourcen besteht darin, dass die Anzahl der Laufzeitobjekte reduziert wird, die zum Erstellen einer Benutzeroberfläche erforderlich sind: Der Pinsel wird jetzt als gemeinsame Ressource freigegeben, die Werte für mehrere Teile des Objektdiagramms bereitstellt.
Wenn Sie sich die vorhandenen Steuerelementvorlagendefinitionen für Windows-Runtime XAML-Steuerelemente ansehen, werden Sie feststellen, dass die Vorlagen Pinselressourcen umfassend verwenden. Viele dieser Ressourcen sind Systemressourcen, und sie verwenden die {ThemeResource}-Markuperweiterung für den Ressourcenverweis und nicht die {StaticResource}-Markuperweiterung. Weitere Informationen zur Verwendung von Systemressourcenpinsel in Ihrer eigenen Steuerelementvorlage XAML finden Sie unter XAML-Designressourcen.
Konstruktoren
SolidColorBrush() |
Initialisiert eine neue Instanz der SolidColorBrush-Klasse ohne Farbe. |
SolidColorBrush(Color) |
Initialisiert eine neue Instanz der SolidColorBrush-Klasse mit dem angegebenen Color. |
Eigenschaften
Color |
Ruft die Farbe dieses SolidColorBrush ab oder legt diese fest. |
ColorProperty | |
Dispatcher |
Ruft den CoreDispatcher ab, dem dieses Objekt zugeordnet ist. CoreDispatcher stellt eine Funktion dar, die auf das DependencyObject im UI-Thread zugreifen kann, auch wenn der Code von einem Nicht-UI-Thread initiiert wird. (Geerbt von DependencyObject) |
Opacity |
Ruft den Deckkraftgrad eines Pinsels ab oder legt diese fest. (Geerbt von Brush) |
RelativeTransform |
Ruft die auf den Pinsel über relative Koordinaten angewendete Transformation ab oder legt diese fest. (Geerbt von Brush) |
Transform |
Dient zum Abrufen oder Festlegen der auf den Pinsel angewendeten Transformation. (Geerbt von Brush) |
Methoden
ClearValue(DependencyProperty) |
Löscht den lokalen Wert einer Abhängigkeitseigenschaft. (Geerbt von DependencyObject) |
GetAnimationBaseValue(DependencyProperty) |
Gibt einen beliebigen Basiswert zurück, der für eine Abhängigkeitseigenschaft festgelegt wurde, die in Fällen gilt, in denen eine Animation nicht aktiv ist. (Geerbt von DependencyObject) |
GetValue(DependencyProperty) |
Gibt den aktuellen effektiven Wert einer Abhängigkeitseigenschaft aus einem DependencyObject zurück. (Geerbt von DependencyObject) |
PopulatePropertyInfo(String, AnimationPropertyInfo) |
Definiert eine Eigenschaft, die animiert werden kann. (Geerbt von Brush) |
PopulatePropertyInfoOverride(String, AnimationPropertyInfo) |
Definiert beim Überschreiben in einer abgeleiteten Klasse eine Eigenschaft, die animiert werden kann. (Geerbt von Brush) |
ReadLocalValue(DependencyProperty) |
Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, wenn ein lokaler Wert festgelegt ist. (Geerbt von DependencyObject) |
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registriert eine Benachrichtigungsfunktion zum Lauschen auf Änderungen an einer bestimmten DependencyProperty für diese DependencyObject-Instanz . (Geerbt von DependencyObject) |
SetValue(DependencyProperty, Object) |
Legt den lokalen Wert einer Abhängigkeitseigenschaft für ein DependencyObject fest. (Geerbt von DependencyObject) |
UnregisterPropertyChangedCallback(DependencyProperty, Int64) |
Bricht eine Änderungsbenachrichtigung ab, die zuvor registriert wurde, indem RegisterPropertyChangedCallback aufgerufen wurde. (Geerbt von DependencyObject) |