Share via


SolidColorBrush Klasse

Definition

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
Object Platform::Object IInspectable DependencyObject Brush SolidColorBrush
Attribute

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>
<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 zu einer einzelnen 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 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 den gesamten visuellen Bereich eines Objekts in der App-Benutzeroberfläche zu fü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 dieses Element nicht für Zwecke des Treffertests registriert wird, und bestimmt, wo ein Eingabeereignis bezogen werden soll. Zeigerereignisse, Gesten oder so weiter, die an diesem Punkt im Ui-Koordinatenraum auftreten, sind nur erkennbar, 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), ist dieser Punkt für Treffertestzwecke erkennbar. Dies unterscheidet sich also von einer Brush-Eigenschaft mit einem NULL-Wert . Ein transparenter Pinsel kann für Techniken wie das Erstellen von Überlagerungsbereichen über Ui-Elementen nützlich sein, 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 zum Treffertest 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 das 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 Pinseltypen 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 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 von Laufzeitobjekten 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 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 instance der SolidColorBrush-Klasse ohne Farbe.

SolidColorBrush(Color)

Initialisiert eine neue instance der SolidColorBrush-Klasse mit dem angegebenen Color.

Eigenschaften

Color

Ruft die Farbe dieses SolidColorBrush ab oder legt diese fest.

ColorProperty

Gibt die Color-Abhängigkeitseigenschaft an.

Dispatcher

Gibt immer in einer Windows App SDK-App zurücknull. Verwenden Sie stattdessen DispatcherQueue .

(Geerbt von DependencyObject)
DispatcherQueue

Ruft den DispatcherQueue ab, dem dieses Objekt zugeordnet ist. Stellt DispatcherQueue eine Funktion dar, die auf den 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, was 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 dieses DependencyObject-instance.

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

Gilt für:

Weitere Informationen