FlowDocumentBaseStyle.xaml 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:hc="clr-namespace:HandyControl.Controls"
  4. xmlns:langs="clr-namespace:HandyControl.Properties.Langs">
  5. <Style x:Key="FlowDocumentScrollViewerBaseStyle" TargetType="FlowDocumentScrollViewer">
  6. <Setter Property="hc:BorderElement.CornerRadius" Value="{StaticResource DefaultCornerRadius}"/>
  7. <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
  8. <Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
  9. <Setter Property="BorderThickness" Value="1"/>
  10. <Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
  11. <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
  12. <Setter Property="VerticalContentAlignment" Value="Stretch"/>
  13. <Setter Property="KeyboardNavigation.TabNavigation" Value="Local"/>
  14. <Setter Property="Template">
  15. <Setter.Value>
  16. <ControlTemplate TargetType="FlowDocumentScrollViewer">
  17. <DockPanel Background="{TemplateBinding Background}" LastChildFill="True">
  18. <Grid x:Name="PART_ToolBarHost" Panel.ZIndex="1" DockPanel.Dock="Bottom" Margin="0,6">
  19. <Grid.ColumnDefinitions>
  20. <ColumnDefinition Width="*"/>
  21. <ColumnDefinition Width="*"/>
  22. </Grid.ColumnDefinitions>
  23. <Border x:Name="PART_FindToolBarHost" Grid.Column="0" HorizontalAlignment="Left" Visibility="Collapsed" VerticalAlignment="Center"/>
  24. <Grid Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center">
  25. <Grid.ColumnDefinitions>
  26. <ColumnDefinition Width="Auto"/>
  27. <ColumnDefinition/>
  28. <ColumnDefinition Width="Auto"/>
  29. </Grid.ColumnDefinitions>
  30. <RepeatButton Height="20" Width="20" Padding="5,8" hc:BorderElement.CornerRadius="10" hc:IconElement.Geometry="{StaticResource SubGeometry}" Grid.Column="0" Command="NavigationCommands.DecreaseZoom" IsEnabled="{TemplateBinding CanDecreaseZoom}" ToolTip="{x:Static langs:Lang.ZoomOut}"/>
  31. <Slider hc:TipElement.Visibility="Visible" hc:TipElement.Placement="Top" Grid.Column="1" HorizontalAlignment="Stretch" LargeChange="{TemplateBinding ZoomIncrement}" Maximum="{TemplateBinding MaxZoom}" Minimum="{TemplateBinding MinZoom}" SmallChange="{TemplateBinding ZoomIncrement}" TickFrequency="{TemplateBinding ZoomIncrement}" Value="{Binding Zoom, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="Center" Width="180"/>
  32. <RepeatButton Height="20" Width="20" Padding="4" hc:BorderElement.CornerRadius="10" hc:IconElement.Geometry="{StaticResource AddGeometry}" Grid.Column="2" Command="NavigationCommands.IncreaseZoom" IsEnabled="{TemplateBinding CanIncreaseZoom}" ToolTip="{x:Static langs:Lang.ZoomIn}"/>
  33. </Grid>
  34. </Grid>
  35. <Border Panel.ZIndex="0" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Margin="{TemplateBinding Padding}" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}">
  36. <ScrollViewer x:Name="PART_ContentHost" CanContentScroll="True" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
  37. </Border>
  38. </DockPanel>
  39. </ControlTemplate>
  40. </Setter.Value>
  41. </Setter>
  42. </Style>
  43. <Style x:Key="FlowDocumentPageViewerBaseStyle" TargetType="FlowDocumentPageViewer">
  44. <Setter Property="hc:BorderElement.CornerRadius" Value="{StaticResource DefaultCornerRadius}"/>
  45. <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
  46. <Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
  47. <Setter Property="BorderThickness" Value="1"/>
  48. <Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
  49. <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
  50. <Setter Property="VerticalContentAlignment" Value="Stretch"/>
  51. <Setter Property="KeyboardNavigation.TabNavigation" Value="Local"/>
  52. <Setter Property="Template">
  53. <Setter.Value>
  54. <ControlTemplate TargetType="FlowDocumentPageViewer">
  55. <DockPanel Background="{TemplateBinding Background}" LastChildFill="True">
  56. <Grid Panel.ZIndex="1" DockPanel.Dock="Bottom" HorizontalAlignment="Stretch" Margin="0,6">
  57. <Grid.ColumnDefinitions>
  58. <ColumnDefinition Width="*"/>
  59. <ColumnDefinition Width="Auto"/>
  60. <ColumnDefinition Width="*"/>
  61. </Grid.ColumnDefinitions>
  62. <Border x:Name="PART_FindToolBarHost" Grid.Column="0" HorizontalAlignment="Left" Visibility="Collapsed" VerticalAlignment="Center"/>
  63. <StackPanel Grid.Column="1" HorizontalAlignment="Center" Orientation="Horizontal" VerticalAlignment="Center">
  64. <RepeatButton Height="20" Width="20" Padding="4" hc:BorderElement.CornerRadius="10" hc:IconElement.Geometry="{StaticResource LeftGeometry}" Command="NavigationCommands.PreviousPage" IsEnabled="{TemplateBinding CanGoToPreviousPage}" ToolTip="{x:Static langs:Lang.PreviousPage}"/>
  65. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
  66. <Run Text=" "/>
  67. <InlineUIContainer>
  68. <TextBlock Text="{Binding MasterPageNumber, RelativeSource={RelativeSource TemplatedParent}}"/>
  69. </InlineUIContainer>
  70. <Run Text=" "/>
  71. <Run Text="/"/>
  72. <Run Text=" "/>
  73. <InlineUIContainer>
  74. <TextBlock Text="{Binding PageCount, RelativeSource={RelativeSource TemplatedParent}}"/>
  75. </InlineUIContainer>
  76. <Run Text=" "/>
  77. </TextBlock>
  78. <RepeatButton Height="20" Width="20" Padding="4" hc:BorderElement.CornerRadius="10" hc:IconElement.Geometry="{StaticResource RightGeometry}" Command="NavigationCommands.NextPage" IsEnabled="{TemplateBinding CanGoToNextPage}" ToolTip="{x:Static langs:Lang.NextPage}"/>
  79. </StackPanel>
  80. <Grid Grid.Column="2" VerticalAlignment="Center" Margin="32,0,0,0">
  81. <Grid.ColumnDefinitions>
  82. <ColumnDefinition Width="Auto"/>
  83. <ColumnDefinition/>
  84. <ColumnDefinition Width="Auto"/>
  85. </Grid.ColumnDefinitions>
  86. <RepeatButton Height="20" Width="20" Padding="5,8" hc:BorderElement.CornerRadius="10" hc:IconElement.Geometry="{StaticResource SubGeometry}" Grid.Column="0" Command="NavigationCommands.DecreaseZoom" IsEnabled="{TemplateBinding CanDecreaseZoom}" ToolTip="{x:Static langs:Lang.ZoomOut}"/>
  87. <Slider hc:TipElement.Visibility="Visible" hc:TipElement.Placement="Top" Grid.Column="1" HorizontalAlignment="Stretch" LargeChange="{TemplateBinding ZoomIncrement}" Maximum="{TemplateBinding MaxZoom}" Minimum="{TemplateBinding MinZoom}" SmallChange="{TemplateBinding ZoomIncrement}" TickFrequency="{TemplateBinding ZoomIncrement}" Value="{Binding Zoom, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="Center"/>
  88. <RepeatButton Height="20" Width="20" Padding="4" hc:BorderElement.CornerRadius="10" hc:IconElement.Geometry="{StaticResource AddGeometry}" Grid.Column="2" Command="NavigationCommands.IncreaseZoom" IsEnabled="{TemplateBinding CanIncreaseZoom}" ToolTip="{x:Static langs:Lang.ZoomIn}"/>
  89. </Grid>
  90. </Grid>
  91. <Border Panel.ZIndex="0" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Margin="{TemplateBinding Padding}" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}">
  92. <AdornerDecorator>
  93. <DocumentPageView HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" DocumentPaginator="{x:Null}" KeyboardNavigation.IsTabStop="False" DocumentViewerBase.IsMasterPage="True" PageNumber="0" KeyboardNavigation.TabIndex="1" KeyboardNavigation.TabNavigation="Local"/>
  94. </AdornerDecorator>
  95. </Border>
  96. </DockPanel>
  97. </ControlTemplate>
  98. </Setter.Value>
  99. </Setter>
  100. </Style>
  101. <Style x:Key="FlowDocumentReaderBaseStyle" TargetType="FlowDocumentReader">
  102. <Setter Property="hc:BorderElement.CornerRadius" Value="{StaticResource DefaultCornerRadius}"/>
  103. <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
  104. <Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
  105. <Setter Property="BorderThickness" Value="1"/>
  106. <Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
  107. <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
  108. <Setter Property="VerticalContentAlignment" Value="Stretch"/>
  109. <Setter Property="KeyboardNavigation.TabNavigation" Value="Local"/>
  110. <Setter Property="Template">
  111. <Setter.Value>
  112. <ControlTemplate TargetType="FlowDocumentReader">
  113. <DockPanel Background="{TemplateBinding Background}" LastChildFill="True">
  114. <Grid Panel.ZIndex="1" DockPanel.Dock="Bottom" HorizontalAlignment="Stretch" Margin="0,6">
  115. <Grid.ColumnDefinitions>
  116. <ColumnDefinition Width="*"/>
  117. <ColumnDefinition Width="Auto"/>
  118. <ColumnDefinition Width="*"/>
  119. </Grid.ColumnDefinitions>
  120. <StackPanel Orientation="Horizontal">
  121. <ToggleButton Width="24" Height="24" Padding="5" x:Name="FindButton" hc:IconElement.Geometry="{StaticResource SearchGeometry}" Command="ApplicationCommands.Find" Margin="0,0,10,0" ToolTip="{x:Static langs:Lang.Find}"/>
  122. <Border x:Name="PART_FindToolBarHost" HorizontalAlignment="Left" Visibility="Collapsed" VerticalAlignment="Center"/>
  123. </StackPanel>
  124. <StackPanel x:Name="PageCountAndButtons" Grid.Column="1" HorizontalAlignment="Center" Orientation="Horizontal" VerticalAlignment="Center">
  125. <RepeatButton Height="20" Width="20" Padding="4" hc:BorderElement.CornerRadius="10" hc:IconElement.Geometry="{StaticResource LeftGeometry}" Command="NavigationCommands.PreviousPage" IsEnabled="{TemplateBinding CanGoToPreviousPage}" ToolTip="{x:Static langs:Lang.PreviousPage}"/>
  126. <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
  127. <Run Text=" "/>
  128. <InlineUIContainer>
  129. <TextBlock Text="{Binding PageNumber, RelativeSource={RelativeSource TemplatedParent}}"/>
  130. </InlineUIContainer>
  131. <Run Text=" "/>
  132. <Run Text="/"/>
  133. <Run Text=" "/>
  134. <InlineUIContainer>
  135. <TextBlock Text="{Binding PageCount, RelativeSource={RelativeSource TemplatedParent}}"/>
  136. </InlineUIContainer>
  137. <Run Text=" "/>
  138. </TextBlock>
  139. <RepeatButton Height="20" Width="20" Padding="4" hc:BorderElement.CornerRadius="10" hc:IconElement.Geometry="{StaticResource RightGeometry}" Command="NavigationCommands.NextPage" IsEnabled="{TemplateBinding CanGoToNextPage}" ToolTip="{x:Static langs:Lang.NextPage}"/>
  140. </StackPanel>
  141. <Grid Grid.Column="2" Margin="32,0,0,0" VerticalAlignment="Center">
  142. <Grid.ColumnDefinitions>
  143. <ColumnDefinition Width="Auto"/>
  144. <ColumnDefinition Width="Auto"/>
  145. <ColumnDefinition/>
  146. <ColumnDefinition Width="Auto"/>
  147. </Grid.ColumnDefinitions>
  148. <hc:ButtonGroup Width="90">
  149. <RadioButton x:Name="PageViewButton" Padding="0" hc:IconElement.Geometry="{StaticResource PageModeGeometry}" CommandParameter="Page" Command="FlowDocumentReader.SwitchViewingModeCommand" GroupName="ViewingMode" IsEnabled="{TemplateBinding IsPageViewEnabled}" ToolTip="{x:Static langs:Lang.PageMode}"/>
  150. <RadioButton x:Name="TwoPageViewButton" hc:IconElement.Geometry="{StaticResource TwoPageModeGeometry}" Padding="0" CommandParameter="TwoPage" Command="FlowDocumentReader.SwitchViewingModeCommand" GroupName="ViewingMode" IsEnabled="{TemplateBinding IsTwoPageViewEnabled}" ToolTip="{x:Static langs:Lang.TwoPageMode}"/>
  151. <RadioButton x:Name="ScrollViewButton" hc:IconElement.Geometry="{StaticResource ScrollModeGeometry}" Padding="0" CommandParameter="Scroll" Command="FlowDocumentReader.SwitchViewingModeCommand" GroupName="ViewingMode" IsEnabled="{TemplateBinding IsScrollViewEnabled}" ToolTip="{x:Static langs:Lang.ScrollMode}"/>
  152. </hc:ButtonGroup>
  153. <RepeatButton Margin="32,0,0,0" Height="20" Width="20" Padding="5,8" hc:BorderElement.CornerRadius="10" hc:IconElement.Geometry="{StaticResource SubGeometry}" Grid.Column="1" Command="NavigationCommands.DecreaseZoom" IsEnabled="{TemplateBinding CanDecreaseZoom}" ToolTip="{x:Static langs:Lang.ZoomOut}"/>
  154. <Slider hc:TipElement.Visibility="Visible" hc:TipElement.Placement="Top" Grid.Column="2" HorizontalAlignment="Stretch" LargeChange="{TemplateBinding ZoomIncrement}" Maximum="{TemplateBinding MaxZoom}" Minimum="{TemplateBinding MinZoom}" SmallChange="{TemplateBinding ZoomIncrement}" TickFrequency="{TemplateBinding ZoomIncrement}" Value="{Binding Zoom, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="Center"/>
  155. <RepeatButton Height="20" Width="20" Padding="4" hc:BorderElement.CornerRadius="10" hc:IconElement.Geometry="{StaticResource AddGeometry}" Grid.Column="3" Command="NavigationCommands.IncreaseZoom" IsEnabled="{TemplateBinding CanIncreaseZoom}" ToolTip="{x:Static langs:Lang.ZoomIn}"/>
  156. </Grid>
  157. </Grid>
  158. <Border Panel.ZIndex="0" x:Name="PART_ContentHost" KeyboardNavigation.IsTabStop="False" KeyboardNavigation.TabIndex="1" KeyboardNavigation.TabNavigation="Local" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Margin="{TemplateBinding Padding}" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}"/>
  159. </DockPanel>
  160. <ControlTemplate.Triggers>
  161. <Trigger Property="ViewingMode" Value="Page">
  162. <Setter Property="IsChecked" TargetName="PageViewButton" Value="True"/>
  163. </Trigger>
  164. <Trigger Property="ViewingMode" Value="TwoPage">
  165. <Setter Property="IsChecked" TargetName="TwoPageViewButton" Value="True"/>
  166. <Setter Property="BorderThickness" Value="0"/>
  167. </Trigger>
  168. <Trigger Property="ViewingMode" Value="Scroll">
  169. <Setter Property="IsChecked" TargetName="ScrollViewButton" Value="True"/>
  170. <Setter Property="Visibility" TargetName="PageCountAndButtons" Value="Collapsed"/>
  171. </Trigger>
  172. <Trigger Property="Document" Value="{x:Null}">
  173. <Setter Property="IsEnabled" TargetName="FindButton" Value="False"/>
  174. </Trigger>
  175. <Trigger Property="IsFindEnabled" Value="False">
  176. <Setter Property="IsEnabled" TargetName="FindButton" Value="False"/>
  177. </Trigger>
  178. </ControlTemplate.Triggers>
  179. </ControlTemplate>
  180. </Setter.Value>
  181. </Setter>
  182. </Style>
  183. </ResourceDictionary>