Freigeben über


Gewusst wie: Ersetzen des Stils von DocumentViewer

Aktualisiert: November 2007

In diesem Beispiel wird veranschaulicht, wie der Standardstil eines DocumentViewer-Steuerelements ersetzt wird.

Beispiel

Der folgende Extensible Application Markup Language (XAML)-Code definiert ein Fenster mit einem DocumentViewer-Steuerelement und einem zugehörigen Stil. Der Beispielstil verwendet eine ControlTemplate, um den DocumentViewer-Standardstil zu ersetzen. In diesem Fall definiert der Beispielstil einfach einen Border mit einer Breite von zehn Pixeln und wendet einen Farbverlauf auf den Rahmen und den Hintergrund des internen ScrollViewer an, den DocumentViewer zur Inhaltsanzeige verwendet.

<Window x:Class="SDKSample.Window1"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
        Title="DocumentViewer_ExtendStyle">
  <Window.Resources>
    <Style 
      x:Key="MyDVStyleReplace"
      TargetType="{x:Type DocumentViewer}">
      <Setter Property="Template">
        <Setter.Value>
          <ControlTemplate TargetType="{x:Type DocumentViewer}">
            <Grid>
              <Border BorderThickness="10">
                <Border.BorderBrush>
                  <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                    <LinearGradientBrush.GradientStops>
                      <GradientStop Color="Yellow" Offset="0" />
                      <GradientStop Color="Red" Offset="0.25" />
                      <GradientStop Color="Blue" Offset="0.75" />
                      <GradientStop Color="LimeGreen" Offset="1" />
                    </LinearGradientBrush.GradientStops>
                  </LinearGradientBrush>
                </Border.BorderBrush>
                <ScrollViewer Name="PART_ContentHost">
                  <ScrollViewer.Background>
                    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                      <LinearGradientBrush.GradientStops>
                        <GradientStop Color="Yellow" Offset="0" />
                        <GradientStop Color="Green" Offset="1" />
                      </LinearGradientBrush.GradientStops>
                    </LinearGradientBrush>
                  </ScrollViewer.Background>
                </ScrollViewer>
              </Border>
            </Grid>
          </ControlTemplate>
        </Setter.Value>
      </Setter>
    </Style>
  </Window.Resources>
  <Grid>
    <DocumentViewer  Style="{StaticResource MyDVStyleReplace}" Name="MyDocumentViewer"/>
  </Grid>
</Window>

Aufgabenhinweise

  • Da der Stil in diesem Beispiel den DocumentViewer-Standardstil nicht erweitert, sondern ersetzt, werden DocumentViewer-Symbolleiste, -Kontextmenü und andere Benutzeroberfläche (user interface, UI)-Elemente (die vom DocumentViewer-Standardstil definiert werden) nicht angezeigt.

  • Wenn der Stil für ein DocumentViewer-Steuerelement ersetzt wird, muss die Steuerelementvorlage einen ScrollViewer mit "PART_ContentHost" als Name enthalten.

  • Ein Stil wird durch Übereinstimmung des Stilschlüssels (x:Key) mit dem Wert, auf den das Style-Attribut eines Elements verweist, angewendet. Im oben stehenden Beispiel heißt der Stilschlüssel "MyDVStyleReplace". Der Schlüssel selbst ist ein beliebiger Zeichenfolgenwert, der innerhalb des aktuellen Bereichs eindeutig sein muss.

  • Auf als lokale Ressourcen definierte Stile muss mit der StaticResource-Syntax aus dem oben stehenden Beispiel als statische Ressource verwiesen werden.

  • Der Stil und ControlTempate geben mithilfe von TargetType an, dass der Stil nur auf DocumentViewer-Steuerelemente anwendbar ist. Ein Konflikt zwischen dem Zieltyp für den Stil oder die Steuerelementvorlage und dem Element, auf das der Stil angewendet wird, löst eine InvalidOperationException-Ausnahme aus.

Siehe auch

Aufgaben

Gewusst wie: Erweitern des Stils von DocumentViewer

Referenz

DocumentViewer

StaticResourceExtension