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
/// [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"/>
- Vererbung
- Attribute
Beispiele
Die am häufigsten verwendete Methode zur Verwendung von SolidColorBrush besteht darin, ein XAML-Element als Ressource in einem ResourceDictionary zu definieren und diese Ressource später aus anderen Teilen von UI-Definitionen, Formatvorlagen oder Vorlagen mithilfe der {StaticResource}-Markuperweiterung oder {ThemeResource}-Markuperweiterungen zu referenzieren.
<ResourceDictionary>
...
<SolidColorBrush x:Key="BlockBackgroundBrush" Color="#FF557EB9"/>
...
</ResourceDictionary>
<Border Background="{StaticResource BlockBackgroundBrush}"
Width="80" Height="80"/>
Es gibt verschiedene Möglichkeiten zum Definieren eines SolidColorBrush-Elements als Inline-UI-Wert und nicht als Ressource:
- Wählen Sie eine vordefinierte Farbe nach Namen aus, und verlassen Sie sich auf die XAML-Verknüpfung, die diese Farbe erstellt, wenn sie analysiert wird. Sie können z. B. 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>
<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>
- Erstellen Sie eine Farbe innerhalb einer 32-Bit-Farbpalette, indem Sie die Mengen von Rot, Grün und Blau angeben, die in einer einzigen Volltonfarbe kombiniert werden sollen.
<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);
Eine weitere Möglichkeit zum Definieren eines neuen SolidColorBrush-Objekts ist die Verwendung der statischen FromArgb-Hilfsmethode . Dies ist nützlich, wenn für die gewünschte Farbe kein benannter Farbwert vorhanden ist.
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 am häufigsten verwendete Pinseltyp , der für viele mögliche UI-Eigenschaften verwendet wird, die einen Pinsel verwenden, um einige oder alle visuellen Bereiche eines Objekts in der App-UI 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 Koordinatenbereich wie andere Elemente angezeigt wird, bewirkt der NULL-Wert für eine Eigenschaft wie "Background ", dass dieses Element nicht für Treffertests registriert wird, und bestimmt, wo ein Eingabeereignis stammen soll. Alle Zeigerereignisse, Gesten usw., die an diesem Punkt im Ui-Koordinatenbereich auftreten, können nur erkannt werden, wenn für die Brush-Eigenschaft ein anderer Wert als Null vorhanden ist, der das Rendern für diesen Punkt beeinflusst.
Ein SolidColorBrush kann erstellt werden, das den transparenten Wert verwendet, und obwohl dadurch keine Änderungen an der Benutzeroberfläche (transparent) angewendet werden, kann dieser Punkt für Treffertests erkannt werden. Dies unterscheidet sich also von einer Brush-Eigenschaft mit einem Nullwert . Ein transparenter Pinsel kann für Techniken wie das Erstellen von Überlagerungsbereichen über UI-Elemente hilfreich sein, bei denen Sie die Treffertests mit einem Element wie einem Rechteck, Rahmen oder Panel abfangen möchten. Sie können dies tun, wenn die darunter liegenden Elemente nicht in der Lage sind, ihre eigenen Treffertests durchzuführen, aber Sie möchten weiterhin Eingabeereignisse erkennen. Weitere Informationen zu Treffertests finden Sie im Abschnitt "Treffertests" der Mausinteraktionen.
Eigenschaften mit Pinsel 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 das ist weder effizient noch ästhetisch. Stattdessen verwenden Sie die Eigenschaftenadressierung, um nur den Farbwert zu animieren, indem Sie einen der dedizierten Animationstypen verwenden, die einen Farbwert animieren können. Dies umfasst in der Regel, einen .(SolidColorBrush.Color) Teil des Storyboard.TargetProperty-Werts zu haben. Weitere Informationen zur Eigenschaftenadressierung und zum Animieren von Eigenschaften, die SolidColorBrush oder andere Pinselwerte verwenden, finden Sie unter Storyboardanimationen.
Ein SolidColorBrush ist ein gemeinsam nutzbares Objekt, wie die anderen abgeleiteten Pinseltypen wie LinearGradientBrush und ImageBrush. Da ein SolidColorBrush gemeinsam verwendet werden kann, wird er manchmal in XAML als Ressource in einem XAML-ResourceDictionary definiert. Der Vorteil der Verwendung gemeinsam nutzbarer Ressourcen aus XAML besteht darin, dass Sie den Wert nur einmal erstellen und 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 Nettodurchsichtigkeitswert 1 ist. Es gibt auch eine Brush.Opacity-Eigenschaft , die sich auf die scheinbare Farbe ähnlich auswirken kann. Brush.Opacity bleibt in der Regel bei seinem Standardwert 1, es sei denn, sie wird absichtlich für einen Ein- oder Ausblendungseffekt animiert.
Pinsel als XAML-Ressourcen
Jeder Pinseltyp , der in XAML deklariert werden kann (SolidColorBrush, LinearGradientBrush, ImageBrush) ist als Ressource definiert, sodass Sie diesen Pinsel in der gesamten App als Ressource wiederverwenden können. Die für Pinseltypen gezeigte XAML-Syntax 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 werden, um aus anderen UI-Definitionen auf diese Ressource 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, sehen Sie, dass die Vorlagen Pinselressourcen umfassend verwenden. Viele dieser Ressourcen sind Systemressourcen und verwenden die {ThemeResource}-Markuperweiterung für den Ressourcenverweis anstelle der {StaticResource}-Markuperweiterung. Weitere Informationen zur Verwendung von Systemressourcenpinseln in Ihrer eigenen Steuerelementvorlagen-XAML finden Sie unter XAML-Designressourcen.
Konstruktoren
| Name | Beschreibung |
|---|---|
| SolidColorBrush() |
Initialisiert eine neue Instanz der SolidColorBrush-Klasse ohne Farbe. |
| SolidColorBrush(Color) |
Initialisiert eine neue Instanz der SolidColorBrush-Klasse mit der angegebenen Farbe. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Color |
Ruft die Farbe dieses SolidColorBrush ab oder legt sie fest. |
| ColorProperty |
Identifies the Color dependency property. |
| Dispatcher |
Gibt immer in einer Windows App SDK-App zurück |
| DispatcherQueue |
Ruft ab |
| Opacity |
Dient zum Abrufen oder Festlegen des Grads der Deckkraft eines Pinsels. (Geerbt von Brush) |
| RelativeTransform |
Dient zum Abrufen oder Festlegen der Transformation, die mit relativen Koordinaten auf den Pinsel angewendet wird. (Geerbt von Brush) |
| Transform |
Dient zum Abrufen oder Festlegen der Transformation, die auf den Pinsel angewendet wird. (Geerbt von Brush) |
Methoden
| Name | Beschreibung |
|---|---|
| ClearValue(DependencyProperty) |
Löscht den lokalen Wert einer Abhängigkeitseigenschaft. (Geerbt von DependencyObject) |
| GetAnimationBaseValue(DependencyProperty) |
Gibt einen Basiswert zurück, der für eine Abhängigkeitseigenschaft eingerichtet wurde, was in Fällen angewendet wird, 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) |
Wenn eine abgeleitete Klasse überschrieben wird, wird eine Eigenschaft definiert, die animiert werden kann. (Geerbt von Brush) |
| ReadLocalValue(DependencyProperty) |
Gibt den lokalen Wert einer Abhängigkeitseigenschaft zurück, wenn ein lokaler Wert festgelegt wird. (Geerbt von DependencyObject) |
| RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback) |
Registriert eine Benachrichtigungsfunktion, um Änderungen an einer bestimmten DependencyProperty für diese DependencyObject-Instanz zu überwachen. (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 durch Aufrufen von RegisterPropertyChangedCallback registriert wurde. (Geerbt von DependencyObject) |