Partilhar via


Como: Replace the Style of a DocumentViewer

Este exemplo mostra como substituir o estilo padrão de um controle DocumentViewer.

Exemplo

O código Extensible Application Markup Language (XAML) a seguir define uma janela que contém um controle DocumentViewer e um estilo que acompanha. Este estilo de exemplo usa um ControlTemplate para substituir o estilo padrão do DocumentViewer. Nesse caso, o estilo exemplo simplesmente define uma Border que tem 10 pixels de espessura, e aplica um gradiente de cores à Border e ao plano de fundo do ScrollViewer interno usado pelo DocumentViewer para exibir o conteúdo.

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

Comentários de tarefas

  • Como o estilo mostrado nesse exemplo substitui o estilo padrão do DocumentViewer ao invés de estendê-lo, os elementos do DocumentViewer -- barra de ferramentas, menu de contexto e outros elementos da interface do usuário (UI) (que sejam definidos pelo estilo padrão do DocumentViewer) -- não serão mostrados.

  • Ao substituir o estilo de um controle DocumentViewer, o modelo de controle deve incluir um ScrollViewer com um Name de "PART_ContentHost".

  • Um estilo é aplicado por correlacionando a chave de estilo (Tecla: x) com o valor referenciado por um atributo Style do elemento. Na apresentação do exemplo acima, a chave de estilo é "MyDVStyleReplace". A chave em si é um valor da sequência de caracteres arbitrário que deve ser exclusiva dentro do escopo atual.

  • Estilos definidos como recursos locais devem por referenciados como um recurso estático, usando a sintaxe Recurso Estático mostrada no exemplo acima.

  • O estilo e Modelo de Controle usam TargetType para indicar que o estilo é aplicável somente a controles DocumentViewer. Uma incompatibilidade entre o tipo de destino para o estilo ou modelo de controle e o elemento ao qual o estilo é aplicado irá gerar uma exceção InvalidOperationException.

Consulte também

Tarefas

Como: Extend the Style of a DocumentViewer

Referência

DocumentViewer

StaticResourceExtension