Condividi tramite


Esempio di ControlTemplate del controllo DocumentViewer

Aggiornamento: novembre 2007

I controlli disponibili in Windows Presentation Foundation (WPF) includono un oggetto ControlTemplate che contiene la relativa struttura ad albero visuale. È possibile modificare la struttura e l'aspetto di un controllo modificando il relativo oggetto ControlTemplate. Non è possibile sostituire solo una parte della struttura ad albero visuale di un controllo. Per modificare la struttura ad albero visuale di un controllo, è necessario impostare la proprietà Template di tale controllo sul relativo oggetto ControlTemplate nuovo e completo.

In questo argomento viene illustrato l'oggetto ControlTemplate del controllo DocumentViewer di WPF.

Nel presente argomento sono contenute le seguenti sezioni.

  • Prerequisiti
  • Esempio di ControlTemplate del controllo DocumentViewer
  • Argomenti correlati

Prerequisiti

Per eseguire gli esempi di questo argomento, è necessario disporre di conoscenze su come scrivere applicazioni WPF. Per ulteriori informazioni, vedere Guida introduttiva a Windows Presentation Foundation. È inoltre necessario comprendere l'utilizzo degli stili in WPF. Per ulteriori informazioni, vedere Applicazione di stili e modelli.

Esempio di ControlTemplate del controllo DocumentViewer

Anche se questo esempio contiene tutti gli elementi definiti nell'oggetto ControlTemplate di un controllo DocumentViewer per impostazione predefinita, i valori specifici devono essere considerati come esempi.

<Style x:Key="{x:Type DocumentViewer}" TargetType="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="ContextMenu"
          Value="{DynamicResource {ComponentResourceKey
          TypeInTargetAssembly={x:Type ui:PresentationUIStyleResources},
          ResourceId=PUIDocumentViewerContextMenu}}"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="DocumentViewer">
        <Border BorderThickness="{TemplateBinding BorderThickness}"
                BorderBrush="{TemplateBinding BorderBrush}" Focusable="False">
          <Grid Background="{StaticResource LightBrush}"
            KeyboardNavigation.TabNavigation="Local">
            <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"/>

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

Nell'esempio precedente viene utilizzata la risorsa seguente:

<LinearGradientBrush x:Key="LightBrush" StartPoint="0,0" EndPoint="0,1">
  <GradientBrush.GradientStops>
    <GradientStopCollection>
      <GradientStop Color="#FFF" Offset="0.0"/>
      <GradientStop Color="#EEE" Offset="1.0"/>
    </GradientStopCollection>
  </GradientBrush.GradientStops>
</LinearGradientBrush>

Per l'esempio completo, vedere Esempio di applicazione di stili con ControlTemplate.

Vedere anche

Concetti

Linee guida per la progettazione di controlli a cui è possibile applicare degli stili

Altre risorse

Esempi di ControlTemplate