Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Deckkraftmasken ermöglichen es Ihnen, Abschnitte eines Elements oder eines Visuals entweder transparent oder teilweise transparent zu machen. Zum Erstellen einer Deckkraftmaske wenden Sie eine Brush auf die OpacityMask-Eigenschaft eines Elements oder Visual an. Der Pinsel wird dem Element oder visuellen Element zugeordnet, und der Deckkraftwert jedes Pinselpixels wird verwendet, um die resultierende Deckkraft jedes entsprechenden Pixels des Elements oder visuellen Elements zu bestimmen.
Voraussetzungen
In dieser Übersicht wird davon ausgegangen, dass Sie mit Brush Objekten vertraut sind. Eine Einführung in die Verwendung von Pinseln finden Sie unter "Übersicht über das Malen mit Vollfarben und Farbverläufen". Informationen zu ImageBrush und DrawingBrush finden Sie unter Arbeiten mit Bildern, Zeichnungen und Grafiken.
Erstellen visueller Effekte mit Deckkraftmasken
Eine Deckkraftmaske funktioniert, indem der Inhalt dem Element oder dem visuellen Element zugeordnet wird. Der Alphakanal jedes einzelnen Pinselpixels wird dann verwendet, um die resultierende Deckkraft des Elements oder der entsprechenden Pixel des visuellen Elements zu bestimmen; die tatsächliche Farbe des Pinsels wird ignoriert. Wenn ein bestimmter Teil des Pinsels transparent ist, wird der entsprechende Teil des Elements oder des visuellen Elements transparent. Wenn ein bestimmter Teil des Pinsels undurchsichtig ist, bleibt die Deckkraft des entsprechenden Teils des Elements oder der Visualisierung unverändert. Die durch die Deckkraftmaske angegebene Opazität wird mit allen Opazitätseinstellungen kombiniert, die im Element oder im Visual vorhanden sind. Wenn z. B. ein Element 25 Prozent undurchsichtig ist und eine Deckkraftmaske angewendet wird, die von vollständig undurchsichtig zu vollständig transparent wechselt, ist das Ergebnis ein Element, das von 25 Prozent Deckkraft zu vollständig transparent wechselt.
Hinweis
Obwohl die Beispiele in dieser Übersicht die Verwendung von Deckkraftmasken auf Bildelementen veranschaulichen, kann eine Deckkraftmaske auf jedes Element Visual, einschließlich Panels und Steuerelementen, angewendet werden.
Deckkraftmasken werden verwendet, um interessante visuelle Effekte zu erzeugen, z. B. zum Erstellen von Bildern oder Schaltflächen, die aus der Ansicht ausgeblendet werden, um Texturen zu Elementen hinzuzufügen oder Farbverläufe zu kombinieren, um glasähnliche Oberflächen zu erzeugen. Die folgende Abbildung zeigt die Verwendung einer Deckkraftmaske. Ein karierter Hintergrund wird verwendet, um die transparenten Teile der Maske anzuzeigen.
Deckkraft-Maskierung (Beispiel)
Erstellen einer Deckkraftmaske
Zum Erstellen einer Deckkraftmaske erstellen Sie eine Brush Maske, und wenden sie auf die OpacityMask Eigenschaft eines Elements oder visuellen Elements an. Sie können jedes beliebige Brush als Deckkraftmaske verwenden.
LinearGradientBrush, RadialGradientBrush: Wird verwendet, um ein Element oder ein visuelles Element aus der Ansicht auszublenden.
Die folgende Abbildung zeigt eine LinearGradientBrush als Deckkraftmaske verwendete Maske.
Beispiel für die Opazitätsmaskierung mit dem LinearGradientBrushImageBrush: Wird zum Erstellen von Textur- und weichen oder tornen Kanteneffekten verwendet.
Die folgende Abbildung zeigt eine ImageBrush, die als Deckkraftmaske verwendet wird.
LinearGradientBrush-Deckkraft-Maskierung (Beispiel)DrawingBrush: Wird verwendet, um komplexe Deckkraftmasken aus Mustern von Formen, Bildern und Farbverläufen zu erstellen.
Die folgende Abbildung zeigt eine DrawingBrush als Deckkraftmaske verwendete Maske.
DrawingBrush-Deckkraft-Maskierung (Beispiel)
Die Farbverlaufspinsel (LinearGradientBrush und RadialGradientBrush) eignen sich besonders gut für die Verwendung als Durchsichtigkeitsmaske. Da ein SolidColorBrush einen Bereich mit einer einheitlichen Farbe füllt, eignet sich SolidColorBrush schlecht als Deckkraftmaske. Die Verwendung eines Opacity entspricht dem Festlegen der -Eigenschaft des Elements oder des Visuellen.
Verwenden eines Farbverlaufs als Deckkraftmaske
Zum Erstellen einer Farbverlaufsfüllung geben Sie zwei oder mehr Farbverlaufstopps an. Jeder Farbverlaufsstopp beschreibt eine Farbe und eine Position (weitere Informationen zum Erstellen und Verwenden von Farbverläufen finden Sie unter "Malen mit Volltonfarben und Farbverläufen"). Der Prozess ist derselbe, wenn ein Verlauf als Deckkraftmaske verwendet wird. Der Unterschied besteht darin, dass der Farbverlauf der Deckkraftmaske keine Farben, sondern Alphakanalwerte mischt. Daher spielt die tatsächliche Farbe des Farbverlaufs keine Rolle; nur der Alphakanal oder die Deckkraft jeder Farbe ist wichtig. Es folgt ein Beispiel.
<!--With the opacity mask:-->
<Image
Width="200" Height="150"
Source="sampleImages\Waterlilies.jpg"
Margin="10"
HorizontalAlignment="Left"
Grid.Column="2" Grid.Row="3">
<Image.OpacityMask>
<LinearGradientBrush StartPoint="0.1,0.1" EndPoint="0.75,0.75">
<LinearGradientBrush.GradientStops>
<GradientStop Offset="0" Color="Black"/>
<GradientStop Offset="1" Color="Transparent"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Image.OpacityMask>
</Image>
Farbverlaufsstopps für eine Transparenzmaske festlegen
Im vorherigen Beispiel wird die vom System definierte Farbe Black als Startfarbe des Farbverlaufs verwendet. Da alle Farben in der Colors Klasse außer Transparentvollständig undurchsichtig sind, können sie verwendet werden, um einfach eine Anfangsfarbe für eine Farbverlaufsdurchsichtigkeitsmaske zu definieren.
Für zusätzliche Kontrolle über Alphawerte beim Definieren einer Deckkraftmaske können Sie den Alphakanal der Farben mithilfe der ARGB-Hexadezimalnotation im Markup oder mithilfe der Color.FromScRgb Methode angeben.
Angeben der Farbdurchsichtigkeit in "XAML"
In Extensible Application Markup Language (XAML) verwenden Sie die ARGB-Hexadezimalnotation, um die Deckkraft einzelner Farben anzugeben. Die ARGB-Hexadezimalnotation verwendet die folgende Syntax:
#
aarrggbb
Die aa in der vorherigen Zeile stellt einen zweistelligen Hexadezimalwert dar, der zum Angeben der Deckkraft der Farbe verwendet wird. Rr, gg und bb stellen jeweils einen zweistelligen Hexadezimalwert dar, der verwendet wird, um die Menge an Rot, Grün und Blau in der Farbe anzugeben. Jede hexadezimale Ziffer kann einen Wert von 0-9 oder A-F aufweisen. 0 ist der kleinste Wert, und F ist der größte. Ein Alphawert von 00 gibt eine vollständig transparente Farbe an, während ein Alphawert von FF eine vollständig undurchsichtige Farbe erstellt. Im folgenden Beispiel wird die HEXAdezimale ARGB-Notation verwendet, um zwei Farben anzugeben. Die erste ist vollständig undurchsichtig, während die zweite vollständig transparent ist.
<Canvas.OpacityMask>
<RadialGradientBrush>
<RadialGradientBrush.GradientStops>
<GradientStop Offset="0" Color="#FF000000"/>
<GradientStop Offset="1" Color="#00000000"/>
</RadialGradientBrush.GradientStops>
</RadialGradientBrush>
</Canvas.OpacityMask>
Verwenden eines Bilds als Deckkraftmaske
Bilder können auch als Deckkraftmaske verwendet werden. Die folgende Abbildung zeigt ein Beispiel. Ein karierter Hintergrund wird verwendet, um die transparenten Teile der Maske anzuzeigen.
Deckkraft-Maskierung (Beispiel)
Um ein Bild als Deckkraftmaske zu verwenden, verwenden Sie ein ImageBrush, um das Bild zu enthalten. Wenn Sie ein Bild erstellen, das als Deckkraftmaske verwendet werden soll, speichern Sie das Bild in einem Format, das mehrere Transparenzebenen unterstützt, zum Beispiel Portable Network Graphics (PNG). Das folgende Beispiel zeigt den Code zum Erstellen der vorherigen Abbildung.
<!-- With the Opacity Mask-->
<Image
Height="150"
Width="200"
Source="sampleImages/Waterlilies.jpg"
HorizontalAlignment="Left"
Margin="10"
Grid.Column="2" Grid.Row="1">
<Image.OpacityMask>
<ImageBrush ImageSource="sampleImages/tornedges.png"/>
</Image.OpacityMask>
</Image>
Verwenden eines nebeneinander angeordneten Bilds als Deckkraftmaske
Im folgenden Beispiel wird dasselbe Bild mit einem anderen ImageBrush verwendet, aber die Kachelfunktionen des Pinsels werden genutzt, um Kacheln des Bildes mit einer Seitenlänge von 50 Pixeln zu erstellen.
<!-- With the Opacity Mask -->
<Image
Height="150"
Width="200"
Source="sampleImages/Waterlilies.jpg"
HorizontalAlignment="Left"
Margin="10"
Grid.Column="2" Grid.Row="2">
<Image.OpacityMask>
<ImageBrush
Viewport="0,0,50,50"
ViewportUnits="Absolute"
TileMode="Tile"
ImageSource="sampleImages/tornedges.png"/>
</Image.OpacityMask>
</Image>
Erstellen einer Deckkraftmaske aus einer Zeichnung
Zeichnungen können als Deckkraftmaske verwendet werden. Die in der Zeichnung enthaltenen Formen können selbst mit Farbverläufen, Volltonfarben, Bildern oder sogar anderen Zeichnungen gefüllt werden. Die folgende Abbildung zeigt ein Beispiel für eine Zeichnung, die als Deckkraftmaske verwendet wird. Ein karierter Hintergrund wird verwendet, um die transparenten Teile der Maske anzuzeigen.
DrawingBrush-Deckkraft-Maskierung (Beispiel)
Um eine Grafik als Deckkraftmaske zu verwenden, verwenden Sie ein DrawingBrush, um die Grafik einzuschließen. Das folgende Beispiel zeigt den Code, der zum Erstellen der vorherigen Abbildung verwendet wird:
<!-- With the Opacity Mask-->
<Image
Grid.Row="4" Grid.Column="5"
Height="150"
Width="200"
Source="sampleImages/Waterlilies.jpg">
<Image.OpacityMask>
<DrawingBrush>
<DrawingBrush.Drawing>
<GeometryDrawing>
<GeometryDrawing.Brush>
<RadialGradientBrush>
<RadialGradientBrush.GradientStops>
<GradientStop Offset="0" Color="Black" />
<GradientStop Offset="1" Color="Transparent" />
</RadialGradientBrush.GradientStops>
</RadialGradientBrush>
</GeometryDrawing.Brush>
<GeometryDrawing.Geometry>
<RectangleGeometry Rect="0.05,0.05 0.9,0.9" />
</GeometryDrawing.Geometry>
<GeometryDrawing.Pen>
<Pen Thickness="0.1" Brush="Black" />
</GeometryDrawing.Pen>
</GeometryDrawing>
</DrawingBrush.Drawing>
</DrawingBrush>
</Image.OpacityMask>
</Image>
Verwenden einer kachelartigen Zeichnung als Deckkraftmaske
Wie der ImageBrush kann auch der DrawingBrush so angepasst werden, dass seine Zeichnung gekachelt wird. Im folgenden Beispiel wird ein Zeichnungspinsel verwendet, um eine nebeneinander angeordnete Deckkraftmaske zu erstellen.
<!-- With the Opacity Mask-->
<Button
Grid.Row="8" Grid.Column="5"
Height="100"
Width="200"
FontFamily="MS Gothic"
FontSize="16">
A Button
<Button.OpacityMask>
<DrawingBrush Viewport="0,0,0.25,0.25" TileMode="Tile">
<DrawingBrush.Drawing>
<GeometryDrawing>
<GeometryDrawing.Brush>
<RadialGradientBrush>
<RadialGradientBrush.GradientStops>
<GradientStop Offset="0" Color="Black" />
<GradientStop Offset="1" Color="Transparent" />
</RadialGradientBrush.GradientStops>
</RadialGradientBrush>
</GeometryDrawing.Brush>
<GeometryDrawing.Geometry>
<RectangleGeometry Rect="0.05,0.05 0.9,0.9" />
</GeometryDrawing.Geometry>
<GeometryDrawing.Pen>
<Pen Thickness="0.1" Brush="Black" />
</GeometryDrawing.Pen>
</GeometryDrawing>
</DrawingBrush.Drawing>
</DrawingBrush>
</Button.OpacityMask>
</Button>
Siehe auch
.NET Desktop feedback