更新 : 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 スタイルで定義されている ユーザー インターフェイス (UI) 要素 (ツール バーやコンテキスト メニューなど) は引き続き表示されます。
スタイルは、要素の Style 属性で参照される値とスタイル キー (x:Key) を照合して適用します。前述の例では、スタイル キーは "MyDVStyleReplace" です。キー自体は任意の文字列値で、現在のスコープ内で一意でなければなりません。
ローカル リソースとして定義されたスタイルは、上記の例で示されているように、StaticResource 構文を使用し、静的リソースとして参照する必要があります。
スタイルおよび ControlTempate は、TargetType を使用して、このスタイルが DocumentViewer コントロールにのみ適用可能であることを示します。スタイル テンプレートまたはコントロール テンプレートと、スタイルが適用される要素との間で、ターゲットの型が一致していないと、InvalidOperationException 例外が発生します。
参照
処理手順
方法 : DocumentViewer のスタイルを置き換える