次の方法で共有


方法 : DocumentViewer のスタイルを拡張する

更新 : 2007 年 11 月

この例では、DocumentViewer コントロールの既定のスタイルを拡張する方法を示します。

使用例

次の Extensible Application Markup Language (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) 要素 (ツール バーやコンテキスト メニューなど) は引き続き表示されます。

  • スタイルは、要素の Style 属性で参照される値とスタイル キー (x:Key) を照合して適用します。前述の例では、スタイル キーは "MyDVStyleReplace" です。キー自体は任意の文字列値で、現在のスコープ内で一意でなければなりません。

  • ローカル リソースとして定義されたスタイルは、上記の例で示されているように、StaticResource 構文を使用し、静的リソースとして参照する必要があります。

  • スタイルおよび ControlTempate は、TargetType を使用して、このスタイルが DocumentViewer コントロールにのみ適用可能であることを示します。スタイル テンプレートまたはコントロール テンプレートと、スタイルが適用される要素との間で、ターゲットの型が一致していないと、InvalidOperationException 例外が発生します。

参照

処理手順

方法 : DocumentViewer のスタイルを置き換える

参照

DocumentViewer