Freigeben über


Erstellen von Text mit einem Schatten

Die Beispiele in diesem Abschnitt zeigen, wie Sie einen Schatteneffekt für angezeigten Text erstellen.

Beispiel

Mit dem DropShadowEffect-Objekt können Sie eine Vielzahl von Schlagschatteneffekten für Windows Presentation Foundation (WPF)-Objekte erstellen. Das folgende Beispiel zeigt einen Schlagschatteneffekt, der auf Text angewendet wird. In diesem Fall handelt es sich um einen weichen Schatten, was bedeutet, dass die Schattenfarbe verschwimmt.

Textschatten mit Weichheit = 0,25

Sie können die Breite eines Schattens steuern, indem Sie die eigenschaft ShadowDepth festlegen. Ein Wert von 4.0 gibt eine Schattenbreite von 4 Pixeln an. Sie können die Weichheit oder Unschärfe eines Schattens steuern, indem Sie die Eigenschaft BlurRadius ändern. Ein Wert von 0.0 gibt an, dass es keine Weichzeichnung gibt. Das folgende Codebeispiel zeigt, wie sie einen weichen Schatten erstellen.

<!-- Soft single shadow. -->
<TextBlock
  Text="Shadow Text"
  Foreground="Teal">
  <TextBlock.Effect>
    <DropShadowEffect
      ShadowDepth="4"
      Direction="330"
      Color="Black"
      Opacity="0.5"
     BlurRadius="4"/>
  </TextBlock.Effect>
</TextBlock>

Hinweis

Diese Schatteneffekte durchlaufen nicht die Textrendering-Pipeline von WPF (Windows Presentation Foundation). Daher ist ClearType bei Verwendung dieser Effekte deaktiviert.

Das folgende Beispiel zeigt einen auf einen Text angewendeten harten Schlagschatteneffekt. In diesem Fall wird der Schatten nicht verwischt.

Textschatten mit Weichheit = 0

Sie können einen harten Schatten erzeugen, indem Sie die BlurRadius-Eigenschaft auf 0.0 festlegen, was bedeutet, dass keine Weichzeichnung verwendet wird. Sie können die Richtung des Schattens steuern, indem Sie die eigenschaft Direction ändern. Legen Sie den Richtungswert dieser Eigenschaft auf einen Grad zwischen 0 und 360fest. Die folgende Illustration zeigt die Richtungswerte der Direction-Eigenschaftseinstellung.

DropShadow-Gradeinstellung für Schatten

Das folgende Codebeispiel zeigt, wie ein harter Schatten erstellt wird.

<!-- Hard single shadow. -->
<TextBlock
  Text="Shadow Text"
  Foreground="Maroon">
  <TextBlock.Effect>
    <DropShadowEffect
      ShadowDepth="6"
      Direction="135"
      Color="Maroon"
      Opacity="0.35"
      BlurRadius="0.0" />
  </TextBlock.Effect>
</TextBlock>

Verwenden eines Weichzeichnereffekts

Ein BlurBitmapEffect kann verwendet werden, um einen schattenähnlichen Effekt zu erstellen, der hinter einem Textobjekt platziert werden kann. Ein auf Text angewendeter Weichzeichner-Bitmapeffekt verwischt Text gleichmäßig in alle Richtungen.

Das folgende Beispiel zeigt einen auf einen Text angewendeten Weichzeichnereffekt.

Textschatten mit BlurBitmapEffect

Das folgende Codebeispiel zeigt, wie ein Unschärfeeffekt erstellt wird.

<!-- Shadow effect by creating a blur. -->
<TextBlock
  Text="Shadow Text"
  Foreground="Green"
  Grid.Column="0" Grid.Row="0" >
  <TextBlock.Effect>
    <BlurEffect
      Radius="8.0"
      KernelType="Box"/>
  </TextBlock.Effect>
</TextBlock>
<TextBlock
  Text="Shadow Text"
  Foreground="Maroon"
  Grid.Column="0" Grid.Row="0" />

Verwenden von TranslateTransform

Ein TranslateTransform kann verwendet werden, um einen schattenähnlichen Effekt zu erstellen, der hinter einem Textobjekt platziert werden kann.

Das folgende Codebeispiel verwendet TranslateTransform, um den Text zu versetzen. In diesem Beispiel erstellt eine geringfügig versetzte Kopie des Textes hinter dem primären Text einen Schatteneffekt.

Textschatten mit TranslateTransform

Das folgende Codebeispiel zeigt, wie Sie eine Transformation für einen Schatteneffekt erstellen.

<!-- Shadow effect by creating a transform. -->
<TextBlock
  Foreground="Black"
  Text="Shadow Text"
  Grid.Column="0" Grid.Row="0">
  <TextBlock.RenderTransform>
    <TranslateTransform X="3" Y="3" />
  </TextBlock.RenderTransform>
</TextBlock>
<TextBlock
  Foreground="Coral"
  Text="Shadow Text"
  Grid.Column="0" Grid.Row="0">
</TextBlock>