如何:扩展 DocumentViewer 的样式

更新:2007 年 11 月

此示例演示如何扩展 DocumentViewer 控件的默认样式。

示例

下面的可扩展应用程序标记语言 (XAML) 代码定义一个窗口,其中包含一个 DocumentViewer 控件及其随附的样式。此示例样式使用 BasedOn 属性来扩展默认的 DocumentViewer 样式。本例中的示例样式只是镜像由默认工具栏样式使用的背景渐变,并将其应用于内容显示区域的背景。

<Window x:Class="SDKSample.Window1"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml">
  <Window.Resources>
    <Style 
      x:Key="MyDVStyleExtend"
      BasedOn="{StaticResource {x:Type DocumentViewer}}" 
      TargetType="{x:Type DocumentViewer}">
      <Setter Property="Background">
        <Setter.Value>
          <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
            <GradientStop Offset="0.0" Color="#CC99CCFF" />
            <GradientStop Offset="1.0" Color="White" />
          </LinearGradientBrush>
        </Setter.Value>
      </Setter>
    </Style>
  </Window.Resources>
  <Grid>
    <DocumentViewer  Style="{StaticResource MyDVStyleExtend}" Name="MyDocumentViewer"/>
  </Grid>
</Window>

下图演示本示例中带有样式的 DocumentViewer 的呈现方式(没有内容):

对其默认样式进行了扩展的 DocumentViewer 控件的示例。

屏幕快照:DocumentViewer 扩展样式

任务备注

  • 由于此示例中所示的样式会扩展 DocumentViewer 的默认样式,而不是替换它,因此由默认 DocumentViewer 样式定义的用户界面 (UI) 元素(如工具栏和上下文菜单)仍显示出来。

  • 样式是通过将样式键 (x:Key) 与元素的 Style 属性所引用的值相匹配来应用的。在上面的示例中,样式键是“MyDVStyleReplace”。样式键本身是必须在当前范围内保持唯一的任意字符串值。

  • 定义为本地资源的样式必须使用上例中所示的 StaticResource 语法,以静态资源形式引用。

  • 样式和 ControlTempate 使用 TargetType 来指示样式仅适用于 DocumentViewer 控件。如果样式或控件模板的目标类型与样式所应用到的元素不匹配,则将引发 InvalidOperationException 异常。

请参见

任务

如何:替换 DocumentViewer 的样式

参考

DocumentViewer