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