DocumentViewer ControlTemplate 예제
업데이트: 2007년 11월
WPF(Windows Presentation Foundation)의 컨트롤에는 해당 컨트롤의 시각적 트리가 포함된 ControlTemplate이 있습니다. 컨트롤의 ControlTemplate을 수정하면 해당 컨트롤의 구조와 모양을 변경할 수 있습니다. 컨트롤의 시각적 트리 부분만 바꿀 수 있는 방법은 없습니다. 즉, 컨트롤의 시각적 트리를 변경하려면 컨트롤의 Template 속성을 새로운 전체 ControlTemplate으로 설정해야 합니다.
이 항목에서는 WPFDocumentViewer 컨트롤의 ControlTemplate을 보여 줍니다.
이 항목에는 다음 단원이 포함되어 있습니다.
- 사전 요구 사항
- DocumentViewer ControlTemplate 예제
- 관련 항목
사전 요구 사항
이 항목의 예제를 실행하려면 WPF 응용 프로그램 작성 방법을 알고 있어야 합니다. 자세한 내용은 Windows Presentation Foundation 시작을 참조하십시오. WPF에서 스타일이 사용되는 방식도 알고 있어야 합니다. 자세한 내용은 스타일 지정 및 템플릿을 참조하십시오.
DocumentViewer ControlTemplate 예제
이 예제에는 기본적으로 DocumentViewer의 ControlTemplate에 정의된 요소가 모두 포함되어 있지만 특정 값은 예제로만 간주해야 합니다.
<Style x:Key="{x:Type DocumentViewer}" TargetType="DocumentViewer">
<Setter Property="Foreground"
Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}"/>
<Setter Property="Background"
Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="ContextMenu"
Value="{DynamicResource {ComponentResourceKey
TypeInTargetAssembly={x:Type ui:PresentationUIStyleResources},
ResourceId=PUIDocumentViewerContextMenu}}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DocumentViewer">
<Border BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}" Focusable="False">
<Grid Background="{StaticResource LightBrush}"
KeyboardNavigation.TabNavigation="Local">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ToolBar
ToolBarTray.IsLocked="True"
KeyboardNavigation.TabNavigation="Continue">
<Button Command="ApplicationCommands.Print"
CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
Content="Print"/>
<Button Command="ApplicationCommands.Copy"
CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
Content="Copy"/>
<Separator />
<Button Command="NavigationCommands.IncreaseZoom"
CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
Content="Zoom In"/>
<Button Command="NavigationCommands.DecreaseZoom"
CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
Content="Zoom Out"/>
<Separator />
<Button Command="NavigationCommands.Zoom"
CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
CommandParameter="100.0"
Content="Actual Size" />
<Button Command="DocumentViewer.FitToWidthCommand"
CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
Content="Fit to Width" />
<Button Command="DocumentViewer.FitToMaxPagesAcrossCommand"
CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
CommandParameter="1"
Content="Whole Page"/>
<Button Command="DocumentViewer.FitToMaxPagesAcrossCommand"
CommandTarget="{Binding RelativeSource={RelativeSource TemplatedParent}}"
CommandParameter="2"
Content="Two Pages"/>
</ToolBar>
<ScrollViewer Grid.Row="1"
CanContentScroll="true"
HorizontalScrollBarVisibility="Auto"
x:Name="PART_ContentHost"
IsTabStop="true"/>
<ContentControl Grid.Row="2"
x:Name="PART_FindToolBarHost"/>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
앞의 예제에서는 다음 리소스를 사용합니다.
<LinearGradientBrush x:Key="LightBrush" StartPoint="0,0" EndPoint="0,1">
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#FFF" Offset="0.0"/>
<GradientStop Color="#EEE" Offset="1.0"/>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
전체 샘플을 보려면 ControlTemplates를 사용한 스타일 지정 샘플을 참조하십시오.
참고 항목
개념
스타일을 지정할 수 있는 컨트롤을 디자인하기 위한 지침