Partager via


Comment : remplacer le style d'un DocumentViewer

Mise à jour : novembre 2007

Cet exemple indique comment remplacer le style par défaut d'un contrôle DocumentViewer.

Exemple

Le code XAML (Extensible Application Markup Language) suivant définit une fenêtre qui contient un contrôle DocumentViewer et un style d'accompagnement. Le style d'exemple utilise un ControlTemplate pour remplacer le style DocumentViewer par défaut. Dans ce cas, le style d'exemple définit simplement un Border de dix pixels d'épaisseur, et applique la coloration dégradée à la Bordure et à l'arrière-plan du ScrollViewer interne utilisé par DocumentViewer pour afficher le contenu.

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

Notes de tâche

  • Comme le style affiché dans cet exemple remplace le style par défaut DocumentViewer plutôt que de le développer, la barre d'outils DocumentViewer, le menu contextuel et d'autres éléments interface utilisateur (UI) (lesquels sont définis par le style DocumentViewer par défaut) ne sont pas montrés.

  • Lors du remplacement du style pour un contrôle DocumentViewer, le modèle de contrôle doit inclure un ScrollViewer avec un Name de "PART_ContentHost."

  • Un style est appliqué en faisant correspondre la clé de style (x:Key) à la valeur référencée par un attribut Style d'élément. Dans l'exemple montré ci-dessus, la clé de style est "MyDVStyleReplace." La clé elle-même est une valeur de chaîne arbitraire qui doit être unique dans la portée actuelle.

  • Les styles définis comme ressources locales doivent être référencés comme une ressource statique, à l'aide de la syntaxe StaticResource indiquée dans l'exemple ci-dessus.

  • Le style et ControlTempate utilisent TargetType pour indiquer que le style est uniquement applicable aux contrôles DocumentViewer. Une incompatibilité entre le type de cible pour le style ou modèle de contrôle et l'élément auquel le style est appliqué déclenchera une exception InvalidOperationException.

Voir aussi

Tâches

Comment : étendre le style d'un DocumentViewer

Référence

DocumentViewer

StaticResourceExtension