此问题的后续问题:How do you hide a WPF DocumentViewer's menu bars?
我是WPF的新手,不知道从哪里开始进行控件模板定制。 MSDN似乎没有太大帮助。
我只需要隐藏主DocumentViewer工具栏,但是当我尝试自定义XAML文件时,它无法编译。什么是自定义步骤?
答案 0 :(得分:2)
在WPF中,控件模板用于使用一组元素“设计”控件,这些元素组成了外观和控件的行为。您不必知道开始使用控件模板。自定义控件模板的步骤如下:
ElementName
(包括控件模板)的默认样式App.xaml
或元素的资源中,例如Window
或Grid
x:Key="{x:Type ElementName}"
更改为x:Key="myStyleName"
ElementName
Style="{StaticResource myStyleName}"
的实例上使用该样式
醇>
让我们这样做。来自MSDN的DocumentViewer
的默认样式Here's。我们看到一个以<ToolBar ...>
开头的重要部分,因此我们将删除所有内容。然后,如果你按照其余步骤进行操作,你最终会得到XAML:
<Grid>
<Grid.Resources>
<Style x:Key="documentViewerNoToolbarStyle"
TargetType="{x:Type 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="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DocumentViewer}">
<Border BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
Focusable="False">
<Grid KeyboardNavigation.TabNavigation="Local">
<Grid.Background>
<SolidColorBrush Color="{DynamicResource ControlLightColor}" />
</Grid.Background>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ScrollViewer Grid.Row="1"
CanContentScroll="true"
HorizontalScrollBarVisibility="Auto"
x:Name="PART_ContentHost"
IsTabStop="true">
<ScrollViewer.Background>
<LinearGradientBrush EndPoint="0.5,1"
StartPoint="0.5,0">
<GradientStop Color="{DynamicResource ControlLightColor}"
Offset="0" />
<GradientStop Color="{DynamicResource ControlMediumColor}"
Offset="1" />
</LinearGradientBrush>
</ScrollViewer.Background>
</ScrollViewer>
<ContentControl Grid.Row="2"
x:Name="PART_FindToolBarHost"/>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Grid.Resources>
<DocumentViewer Style="{StaticResource documentViewerNoToolbarStyle}"/>
</Grid>