Partager via


Styles et modèles DocumentViewer

Cette rubrique décrit les styles et les modèles du contrôle DocumentViewer. Vous pouvez modifier le ControlTemplate par défaut pour donner une apparence unique au contrôle. Pour plus d'informations, consultez Personnalisation de l'apparence d'un contrôle existant en créant un ControlTemplate.

Composants de DocumentViewer

Le tableau ci-dessous répertorie les composants nommés du contrôle DocumentViewer.

Élément

Type

Description

PART_ContentHost

ScrollViewer

Contenu et zone de défilement.

PART_FindToolBarHost

ContentControl

Zone de recherche, en bas par défaut.

États de DocumentViewer

Le tableau ci-dessous répertorie les états visuels du contrôle DocumentViewer.

Nom VisualState

Nom VisualStateGroup

Description

Valid

ValidationStates

Le contrôle utilise la classe Validation et la propriété jointe de Validation.HasError est false.

InvalidFocused

ValidationStates

La propriété jointe de Validation.HasError est true, a le contrôle et a le focus.

InvalidUnfocused

ValidationStates

La propriété jointe de Validation.HasError est true, a le contrôle, mais n'a pas le focus.

DocumentViewer ControlTemplate, exemple

L'exemple suivant montre comment définir un ControlTemplate pour le contrôle DocumentViewer.

<Style x:Key="{x:Type DocumentViewer}"
       TargetType="{x:Type DocumentViewer}">
  <Setter Property="Foreground"
          Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}" />
  <Setter Property="Background"
          Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
  <Setter Property="FocusVisualStyle"
          Value="{x:Null}" />
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type DocumentViewer}">
        <Border BorderThickness="{TemplateBinding BorderThickness}"
                BorderBrush="{TemplateBinding BorderBrush}"
                Focusable="False">
          <Grid KeyboardNavigation.TabNavigation="Local">
            <Grid.Background>
              <SolidColorBrush Color="{DynamicResource ControlLightColor}" />
            </Grid.Background>
            <Grid.RowDefinitions>
              <RowDefinition Height="Auto" />
              <RowDefinition Height="*" />
              <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <ToolBar ToolBarTray.IsLocked="True"
                     KeyboardNavigation.TabNavigation="Continue">
              <Button Command="ApplicationCommands.Print"
                      CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                      Content="Print" />
              <Button Command="ApplicationCommands.Copy"
                      CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                      Content="Copy" />
              <Separator />
              <Button Command="NavigationCommands.IncreaseZoom"
                      CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                      Content="Zoom In" />
              <Button Command="NavigationCommands.DecreaseZoom"
                      CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                      Content="Zoom Out" />
              <Separator />
              <Button Command="NavigationCommands.Zoom"
                      CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                      CommandParameter="100.0"
                      Content="Actual Size" />
              <Button Command="DocumentViewer.FitToWidthCommand"
                      CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                      Content="Fit to Width" />
              <Button Command="DocumentViewer.FitToMaxPagesAcrossCommand"
                      CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                      CommandParameter="1"
                      Content="Whole Page" />
              <Button Command="DocumentViewer.FitToMaxPagesAcrossCommand"
                      CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                      CommandParameter="2"
                      Content="Two Pages" />
            </ToolBar>

            <ScrollViewer Grid.Row="1"
                          CanContentScroll="true"
                          HorizontalScrollBarVisibility="Auto"
                          x:Name="PART_ContentHost"
                          IsTabStop="true">
              <ScrollViewer.Background>
                <LinearGradientBrush EndPoint="0.5,1"
                                     StartPoint="0.5,0">
                  <GradientStop Color="{DynamicResource ControlLightColor}"
                                Offset="0" />
                  <GradientStop Color="{DynamicResource ControlMediumColor}"
                                Offset="1" />
                </LinearGradientBrush>
              </ScrollViewer.Background>
            </ScrollViewer>

            <ContentControl Grid.Row="2"
                            x:Name="PART_FindToolBarHost"/>
          </Grid>
        </Border>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

L'exemple précédent utilise une ou plusieurs des ressources suivantes.

<!--Control colors.-->
<Color x:Key="WindowColor">#FFE8EDF9</Color>
<Color x:Key="ContentAreaColorLight">#FFC5CBF9</Color>
<Color x:Key="ContentAreaColorDark">#FF7381F9</Color>

<Color x:Key="DisabledControlLightColor">#FFE8EDF9</Color>
<Color x:Key="DisabledControlDarkColor">#FFC5CBF9</Color>
<Color x:Key="DisabledForegroundColor">#FF888888</Color>

<Color x:Key="SelectedBackgroundColor">#FFC5CBF9</Color>
<Color x:Key="SelectedUnfocusedColor">#FFDDDDDD</Color>

<Color x:Key="ControlLightColor">White</Color>
<Color x:Key="ControlMediumColor">#FF7381F9</Color>
<Color x:Key="ControlDarkColor">#FF211AA9</Color>

<Color x:Key="ControlMouseOverColor">#FF3843C4</Color>
<Color x:Key="ControlPressedColor">#FF211AA9</Color>


<Color x:Key="GlyphColor">#FF444444</Color>
<Color x:Key="GlyphMouseOver">sc#1, 0.004391443, 0.002428215, 0.242281124</Color>

<!--Border colors-->
<Color x:Key="BorderLightColor">#FFCCCCCC</Color>
<Color x:Key="BorderMediumColor">#FF888888</Color>
<Color x:Key="BorderDarkColor">#FF444444</Color>

<Color x:Key="PressedBorderLightColor">#FF888888</Color>
<Color x:Key="PressedBorderDarkColor">#FF444444</Color>

<Color x:Key="DisabledBorderLightColor">#FFAAAAAA</Color>
<Color x:Key="DisabledBorderDarkColor">#FF888888</Color>

<Color x:Key="DefaultBorderBrushDarkColor">Black</Color>

<!--Control-specific resources.-->
<Color x:Key="HeaderTopColor">#FFC5CBF9</Color>
<Color x:Key="DatagridCurrentCellBorderColor">Black</Color>
<Color x:Key="SliderTrackDarkColor">#FFC5CBF9</Color>

<Color x:Key="NavButtonFrameColor">#FF3843C4</Color>

<LinearGradientBrush x:Key="MenuPopupBrush"
                     EndPoint="0.5,1"
                     StartPoint="0.5,0">
  <GradientStop Color="{DynamicResource ControlLightColor}"
                Offset="0" />
  <GradientStop Color="{DynamicResource ControlMediumColor}"
                Offset="0.5" />
  <GradientStop Color="{DynamicResource ControlLightColor}"
                Offset="1" />
</LinearGradientBrush>

<LinearGradientBrush x:Key="ProgressBarIndicatorAnimatedFill"
                     StartPoint="0,0"
                     EndPoint="1,0">
  <LinearGradientBrush.GradientStops>
    <GradientStopCollection>
      <GradientStop Color="#000000FF"
                    Offset="0" />
      <GradientStop Color="#600000FF"
                    Offset="0.4" />
      <GradientStop Color="#600000FF"
                    Offset="0.6" />
      <GradientStop Color="#000000FF"
                    Offset="1" />
    </GradientStopCollection>
  </LinearGradientBrush.GradientStops>
</LinearGradientBrush>

Pour l'exemple complet, consultez Style avec ControlTemplates, exemple (page éventuellement en anglais).

Voir aussi

Référence

Style

ControlTemplate

Concepts

Application d'un style et création de modèles

Personnalisation de l'apparence d'un contrôle existant en créant un ControlTemplate

Autres ressources

Styles et modèles Control

Personnalisation des contrôles

Historique des modifications

Date

Historique

Motif

Août 2010

Instance de ControlTemplate ajoutée.

Améliorations apportées aux informations.