Xamarin.Forms Pinsel: Volltonfarben
Die SolidColorBrush
Klasse wird von der Brush
Klasse abgeleitet und verwendet, um einen Bereich mit einer Volltonfarbe zu zeichnen. Für die Angabe der Farbe eines SolidColorBrush
gibt es verschiedene Ansätze. Sie können zum Beispiel die Farbe mit einem Color
-Wert angeben oder eines der vordefinierten SolidColorBrush
-Objekte verwenden, die von der Brush
-Klasse bereitgestellt werden.
Die Klasse SolidColorBrush
definiert die Eigenschaft Color
vom Typ Color
, die die Farbe des Pinsels darstellt. Diese Eigenschaft wird durch ein BindableProperty
-Objekt unterstützt, was bedeutet, dass sie das Ziel von Datenbindungen sein kann und geformt werden kann.
Die SolidColorBrush
-Klasse verfügt außerdem über eine IsEmpty
-Methode, die einen bool
-Wert zurückgibt, ob dem Pinsel eine Farbe zugewiesen wurde.
Erstellen eines SolidColorBrush
Es gibt drei Haupttechniken zur Erstellung eines SolidColorBrush
. Sie können ein SolidColorBrush
aus einem Color
erstellen, einen vordefinierten Pinsel verwenden oder ein SolidColorBrush
in hexadezimaler Notation erstellen.
Eine vordefinierte Farbe verwenden
Xamarin.Forms enthält einen Typkonverter, der einen SolidColorBrush
aus einem Color
Wert erstellt. In XAML kann so ein SolidColorBrush
aus einem vordefinierten Color
-Wert erstellt werden:
<Frame Background="DarkBlue"
BorderColor="LightGray"
HasShadow="True"
CornerRadius="12"
HeightRequest="120"
WidthRequest="120" />
In diesem Beispiel ist der Hintergrund des Frame
in einem dunkelblauen SolidColorBrush
gehalten:
Alternativ kann der Wert Color
auch über die Syntax der Eigenschaftskennzeichnung angegeben werden:
<Frame BorderColor="LightGray"
HasShadow="True"
CornerRadius="12"
HeightRequest="120"
WidthRequest="120">
<Frame.Background>
<SolidColorBrush Color="DarkBlue" />
</Frame.Background>
</Frame>
In diesem Beispiel wird der Hintergrund des Frame
mit einem SolidColorBrush
gezeichnet, dessen Farbe durch die Einstellung der Eigenschaft SolidColorBrush.Color
festgelegt wird.
Einen vordefinierten Pinsel verwenden
Die Brush
-Klasse definiert eine Reihe von häufig verwendeten SolidColorBrush
-Objekten. Das folgende Beispiel verwendet eines dieser vordefinierten SolidColorBrush
-Objekte:
<Frame Background="{x:Static Brush.Indigo}"
BorderColor="LightGray"
HasShadow="True"
CornerRadius="12"
HeightRequest="120"
WidthRequest="120" />
Der entsprechende C#-Code lautet:
Frame frame = new Frame
{
Background = Brush.Indigo,
BorderColor = Color.LightGray,
// ...
};
In diesem Beispiel ist der Hintergrund des Frame
mit einem indigoblauen SolidColorBrush
bemalt:
Eine Liste der vordefinierten SolidColorBrush
-Objekte, die von der Brush
-Klasse bereitgestellt werden, finden Sie unter Farbpinsel.
Verwenden Sie eine Hexadezimale Schreibweise
SolidColorBrush
-Objekte können auch in hexadezimaler Notation erstellt werden. Bei diesem Ansatz wird eine Farbe durch die Menge an Rot, Grün und Blau angegeben, die zu einer einzigen Farbe kombiniert werden soll. Das Hauptformat für die Angabe einer Farbe in hexadezimaler Notation ist #rrggbb
, wobei:
rr
ist eine zweistellige hexadezimale Zahl, die den relativen Anteil von Rot angibt.gg
ist eine zweistellige hexadezimale Zahl, die den relativen Anteil von Grün angibt.bb
ist eine zweistellige hexadezimale Zahl, die den relativen Anteil von Blau angibt.
Außerdem kann eine Farbe als #aarrggbb
angegeben werden, wobei aa
den Alphawert bzw. die Transparenz der Farbe angibt. Dieser Ansatz ermöglicht Ihnen die Erstellung von Farben, die teilweise transparent sind.
Im folgenden Beispiel wird der Farbwert eines SolidColorBrush
in hexadezimaler Notation festgelegt:
<Frame Background="#FF9988"
BorderColor="LightGray"
HasShadow="True"
CornerRadius="12"
HeightRequest="120"
WidthRequest="120" />
In diesem Beispiel ist der Hintergrund des Frame
mit einem lachsfarbenen SolidColorBrush
bemalt:
Weitere Möglichkeiten zum Beschreiben von Farben finden Sie unter "Farben" in Xamarin.Forms.
Einfarbige Pinsel
Der Einfachheit halber bietet die Klasse Brush
eine Reihe von häufig verwendeten SolidColorBrush
-Objekten, wie AliceBlue
und YellowGreen
. Die folgende Abbildung zeigt die Farbe jedes vordefinierten Pinsels, seinen Namen und seinen Hexadezimalwert: