다음을 통해 공유


방법: DocumentViewer의 스타일 바꾸기

업데이트: 2007년 11월

이 예제에서는 DocumentViewer 컨트롤의 기본 스타일을 바꾸는 방법을 보여 줍니다.

예제

다음 XAML(Extensible Application Markup Language) 코드는 DocumentViewer 컨트롤과 관련 스타일이 포함된 창을 정의합니다. 예제 스타일에서는 ControlTemplate을 사용하여 기본 DocumentViewer 스타일을 바꿉니다. 이 경우 예제 스타일에서는 간단히 두께가 10픽셀인 Border를 정의하고 테두리DocumentViewer에 사용되는 내부 ScrollViewer의 배경에 그라데이션 색을 적용하여 콘텐츠를 표시합니다.

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

작업 설명

  • 이 예제에 표시된 스타일은 DocumentViewer 기본 스타일을 확장하는 것이 아니라 바꾸기 때문에 DocumentViewer 도구 모음, 컨텍스트 메뉴 및 다른 UI(사용자 인터페이스) 요소(기본 DocumentViewer 스타일에 의해 정의됨)가 표시되지 않습니다.

  • DocumentViewer 컨트롤에 대한 스타일을 바꿀 때 컨트롤 템플릿에는 Name이 "PART_ContentHost"로 지정된 ScrollViewer를 포함해야 합니다.

  • 스타일은 스타일 키(x:Key)를 요소의 Style 특성에 의해 참조되는 값에 일치시켜 적용됩니다. 위의 예제에서 스타일 키는 "MyDVStyleReplace"입니다. 키 자체는 현재 범위 내에서 고유해야 하는 임의의 문자열 값입니다.

  • 로컬 리소스로 정의된 스타일은 위의 예제에 표시된 StaticResource 구문을 사용하여 정적 리소스로 참조되어야 합니다.

  • 스타일 및 ControlTemplateTargetType을 사용하여 해당 스타일을 DocumentViewer 컨트롤에만 적용할 수 있음을 나타냅니다. 스타일 또는 컨트롤 템플릿에 대한 대상 형식과 스타일이 적용되는 요소 간에 불일치 사항이 있으면 InvalidOperationException 예외가 발생합니다.

참고 항목

작업

방법: DocumentViewer의 스타일 확장

참조

DocumentViewer

StaticResourceExtension