I have a DocumentViewer that is displaying XPS content, I also use Telerik's controls for showing a report content. What I am attempting to do is get my XPS and report to have the same look, and I have everything matching except the scroll bars.
I have the style defined of the report as follows
I extrated the style of the DocumentViewer using Blend and attempted to override the ScrollViewer's style to use the same theme
However when I try it the scroll arrows are missing and the three dashes are missing from the middle of the bars. What do I need to do to correctly style a DocumentViewer to have the same scroll bar style as the Report controll?
I have the style defined of the report as follows
<
Style
TargetType
=
"telerikReporting:ReportViewer"
>
<
Setter
Property
=
"Template"
>
<
Setter.Value
>
<
ControlTemplate
TargetType
=
"telerikReporting:ReportViewer"
>
<
Grid
x:Name
=
"LayoutRoot"
>
<
Border
BorderBrush
=
"{StaticResource OuterControlBorderBrush}"
BorderThickness
=
"1"
CornerRadius
=
"6"
>
<
Border
Margin
=
"0"
Padding
=
"6"
Background
=
"{StaticResource ControlBackgroundBrush}"
BorderBrush
=
"{StaticResource InnerControlBorderBrush}"
BorderThickness
=
"1"
CornerRadius
=
"5"
>
<
Grid
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"auto"
/>
<
RowDefinition
Height
=
"*"
/>
<
RowDefinition
Height
=
"2"
/>
<
RowDefinition
Height
=
"auto"
/>
</
Grid.RowDefinitions
>
<!-- Toolbar -->
<
telerik:RadToolBar
Grid.Row
=
"0"
>
<!-- Cut out to make the post shorter-->
</
telerik:RadToolBar
>
<
Grid
Grid.Row
=
"1"
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
=
"*"
/>
</
Grid.ColumnDefinitions
>
<!-- Viewer Area -->
<
Border
Grid.Column
=
"2"
CornerRadius
=
"4"
BorderThickness
=
"1"
BorderBrush
=
"{StaticResource OuterViewerAreaBorderBrush}"
>
<
Border
BorderThickness
=
"1"
Margin
=
"0"
CornerRadius
=
"3"
Background
=
"{StaticResource InnerViewerAreaBackground}"
BorderBrush
=
"{StaticResource InnerViewerAreaBorderBrush}"
>
<
Grid
>
<
ScrollViewer
x:Name
=
"PageScrollViewer"
Visibility
=
"Visible"
BorderThickness
=
"0"
HorizontalScrollBarVisibility
=
"Auto"
VerticalScrollBarVisibility
=
"Visible"
>
<
telerik:StyleManager.Theme
>
<
telerik:Office_SilverTheme
/>
</
telerik:StyleManager.Theme
>
<
ContentControl
x:Name
=
"PageContainer"
>
<
ContentControl.Resources
>
<
ControlTemplate
x:Key
=
"PrintPreviewTemplate"
>
<
Border
x:Name
=
"PageBorder"
Background
=
"{StaticResource PageBorderBackground}"
BorderBrush
=
"{StaticResource PageBorderBorderBrush}"
BorderThickness
=
"1"
Margin
=
"10"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Center"
>
<
telerik:LayoutTransformControl
x:Name
=
"PageContainer"
LayoutTransform
=
"{Binding PageTransform}"
Content
=
"{Binding PageRoot}"
/>
</
Border
>
</
ControlTemplate
>
<
ControlTemplate
x:Key
=
"InteractiveTemplate"
>
<
ContentPresenter
Margin
=
"10"
HorizontalAlignment
=
"Left"
VerticalAlignment
=
"Top"
>
<
ContentPresenter.Content
>
<
telerik:LayoutTransformControl
x:Name
=
"PageContainer"
LayoutTransform
=
"{Binding PageTransform}"
Content
=
"{Binding PageRoot}"
/>
</
ContentPresenter.Content
>
</
ContentPresenter
>
</
ControlTemplate
>
</
ContentControl.Resources
>
</
ContentControl
>
</
ScrollViewer
>
<!-- Progress -->
<
telerikReporting:DialogBox
x:Name
=
"ViewerProgressMessage"
>
<!-- Cut out to make the post shorter-->
</
telerikReporting:DialogBox
>
<!-- Error message -->
<
TextBox
x:Name
=
"ViewerError"
>
<!-- Cut out to make the post shorter-->
</
TextBox
>
<!-- Export dialog -->
<
telerikReporting:DialogBox
x:Name
=
"ExportDialog"
>
<!-- Cut out to make the post shorter-->
</
telerikReporting:DialogBox
>
</
Grid
>
</
Border
>
</
Border
>
</
Grid
>
<!-- Status Area -->
<
Grid
Grid.Row
=
"4"
>
<!-- Cut out to make the post shorter-->
</
Grid
>
</
Grid
>
</
Border
>
</
Border
>
</
Grid
>
</
ControlTemplate
>
</
Setter.Value
>
</
Setter
>
</
Style
>
I extrated the style of the DocumentViewer using Blend and attempted to override the ScrollViewer's style to use the same theme
<!-- Office_SilverTheme -->
<
SolidColorBrush
x:Key
=
"OuterControlBorderBrush"
Color
=
"#3FFFFFFF"
/>
<
SolidColorBrush
x:Key
=
"InnerControlBorderBrush"
Color
=
"#FF7E7E95"
/>
<
LinearGradientBrush
x:Key
=
"ControlBackgroundBrush"
EndPoint
=
"0.5,1"
StartPoint
=
"0.5,0"
>
<
GradientStop
Color
=
"#FFF0F0F9"
/>
<
GradientStop
Color
=
"#FF9F9FBB"
Offset
=
"0.1"
/>
<
GradientStop
Color
=
"#FFE1E1EA"
Offset
=
"1"
/>
</
LinearGradientBrush
>
<
SolidColorBrush
x:Key
=
"OuterViewerAreaBorderBrush"
Color
=
"#66FFFFFF"
/>
<
SolidColorBrush
x:Key
=
"InnerViewerAreaBorderBrush"
Color
=
"#FF7E7E95"
/>
<
SolidColorBrush
x:Key
=
"InnerViewerAreaBackground"
Color
=
"White"
/>
<
SolidColorBrush
x:Key
=
"ForegroundBrush"
Color
=
"Black"
/>
<
SolidColorBrush
x:Key
=
"PageBorderBackground"
Color
=
"White"
/>
<
SolidColorBrush
x:Key
=
"PageBorderBorderBrush"
Color
=
"DarkGray"
/>
<
SolidColorBrush
x:Key
=
"ErrorMessageForeground"
Color
=
"Gray"
/>
<!-- Office_SilverTheme -->
<
Style
x:Key
=
"TelerikDocumentStyle"
BasedOn
=
"{x:Null}"
TargetType
=
"{x:Type DocumentViewer}"
>
<
Setter
Property
=
"Template"
>
<
Setter.Value
>
<
ControlTemplate
TargetType
=
"{x:Type DocumentViewer}"
>
<
Border
BorderBrush
=
"{TemplateBinding BorderBrush}"
BorderThickness
=
"{TemplateBinding BorderThickness}"
Focusable
=
"False"
>
<
Grid
Background
=
"{TemplateBinding Background}"
KeyboardNavigation.TabNavigation
=
"Local"
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
=
"*"
/>
</
Grid.ColumnDefinitions
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"Auto"
/>
<
RowDefinition
Height
=
"*"
/>
<
RowDefinition
Height
=
"Auto"
/>
</
Grid.RowDefinitions
>
<
ContentControl
Grid.Column
=
"0"
Focusable
=
"{TemplateBinding Focusable}"
Grid.Row
=
"0"
Style
=
"{DynamicResource {ComponentResourceKey ResourceId=PUIDocumentViewerToolBarStyleKey, TypeInTargetAssembly={x:Type Documents:PresentationUIStyleResources}}}"
TabIndex
=
"0"
/>
<
ScrollViewer
x:Name
=
"PART_ContentHost"
CanContentScroll
=
"true"
Grid.Column
=
"0"
Focusable
=
"{TemplateBinding Focusable}"
HorizontalScrollBarVisibility
=
"Auto"
IsTabStop
=
"true"
Grid.Row
=
"1"
TabIndex
=
"1"
>
<
telerik:StyleManager.Theme
>
<
telerik:Office_SilverTheme
/>
</
telerik:StyleManager.Theme
>
</
ScrollViewer
>
<
DockPanel
Grid.Row
=
"1"
>
<
FrameworkElement
DockPanel.Dock
=
"Right"
Width
=
"{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}"
/>
<
Rectangle
Height
=
"10"
Visibility
=
"Visible"
VerticalAlignment
=
"top"
>
<
Rectangle.Fill
>
<
LinearGradientBrush
EndPoint
=
"0,1"
StartPoint
=
"0,0"
>
<
LinearGradientBrush.GradientStops
>
<
GradientStopCollection
>
<
GradientStop
Color
=
"#66000000"
Offset
=
"0"
/>
<
GradientStop
Color
=
"Transparent"
Offset
=
"1"
/>
</
GradientStopCollection
>
</
LinearGradientBrush.GradientStops
>
</
LinearGradientBrush
>
</
Rectangle.Fill
>
</
Rectangle
>
</
DockPanel
>
<
ContentControl
x:Name
=
"PART_FindToolBarHost"
Grid.Column
=
"0"
Focusable
=
"{TemplateBinding Focusable}"
Grid.Row
=
"2"
TabIndex
=
"2"
/>
</
Grid
>
</
Border
>
</
ControlTemplate
>
</
Setter.Value
>
</
Setter
>
</
Style
>
However when I try it the scroll arrows are missing and the three dashes are missing from the middle of the bars. What do I need to do to correctly style a DocumentViewer to have the same scroll bar style as the Report controll?