code_junkie

Disabling text selection in DocumentViewer

Nov 12th, 2011
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.97 KB | None | 0 0
  1. <Style TargetType="{x:Type ScrollViewer}" x:Key="CustomScrollPresenter">
  2. <Setter Property="Template">
  3. <Setter.Value>
  4. <ControlTemplate TargetType="{x:Type ScrollViewer}">
  5. <Grid Background="{TemplateBinding Panel.Background}">
  6. <Grid.ColumnDefinitions>
  7. <ColumnDefinition Width="*" />
  8. <ColumnDefinition Width="Auto" />
  9. </Grid.ColumnDefinitions>
  10. <Grid.RowDefinitions>
  11. <RowDefinition Height="*" />
  12. <RowDefinition Height="Auto" />
  13. </Grid.RowDefinitions>
  14. <Rectangle Grid.Column="1" Grid.Row="1" Fill="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
  15. <ScrollContentPresenter
  16. PreviewMouseLeftButtonDown="ScrollContentPresenter_PreviewMouseLeftButtonDown"
  17. Grid.Column="0"
  18. Grid.Row="0"
  19. Margin="{TemplateBinding Control.Padding}"
  20. Content="{TemplateBinding ContentControl.Content}"
  21. ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}"
  22. CanContentScroll="{TemplateBinding ScrollViewer.CanContentScroll}" />
  23. <ScrollBar
  24. x:Name="PART_VerticalScrollBar"
  25. Grid.Column="1"
  26. Grid.Row="0"
  27. Minimum="0"
  28. Maximum="{TemplateBinding ScrollViewer.ScrollableHeight}"
  29. ViewportSize="{TemplateBinding ScrollViewer.ViewportHeight}"
  30. Value="{Binding Path=VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}"
  31. Visibility="{TemplateBinding ScrollViewer.ComputedVerticalScrollBarVisibility}"
  32. Cursor="Arrow" AutomationProperties.AutomationId="VerticalScrollBar" />
  33. <ScrollBar
  34. x:Name="PART_HorizontalScrollBar"
  35. Orientation="Horizontal" Grid.Column="0" Grid.Row="1" Minimum="0"
  36. Maximum="{TemplateBinding ScrollViewer.ScrollableWidth}" ViewportSize="{TemplateBinding ScrollViewer.ViewportWidth}" Value="{Binding Path=HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}" Visibility="{TemplateBinding ScrollViewer.ComputedHorizontalScrollBarVisibility}" Cursor="Arrow" AutomationProperties.AutomationId="HorizontalScrollBar" />
  37.  
  38. </Grid>
  39. </ControlTemplate>
  40. </Setter.Value>
  41. </Setter>
  42. </Style>
  43.  
  44. <Style
  45. x:Key="MyDVStyleExtend"
  46. BasedOn="{StaticResource {x:Type DocumentViewer}}"
  47. TargetType="{x:Type DocumentViewer}">
  48.  
  49. <Setter Property="Template">
  50. <Setter.Value>
  51.  
  52. <ControlTemplate TargetType="DocumentViewer">
  53. <Border BorderThickness="2,2,2,2"
  54. BorderBrush="SlateBlue" Focusable="False">
  55. <Grid Background="{StaticResource GridBackground}"
  56. KeyboardNavigation.TabNavigation="Local">
  57. <Grid.ColumnDefinitions>
  58. <ColumnDefinition Width ="*"/>
  59. </Grid.ColumnDefinitions>
  60.  
  61. <ScrollViewer Style="{StaticResource CustomScrollPresenter}" Grid.Column ="0"
  62. CanContentScroll="True"
  63. HorizontalScrollBarVisibility="Auto"
  64. x:Name="PART_ContentHost"
  65. IsTabStop="True"/>
  66.  
  67. </Grid>
  68. </Border>
  69. </ControlTemplate>
  70. </Setter.Value>
  71. </Setter>
  72.  
  73. </Style>
  74.  
  75. private void ScrollContentPresenter_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
  76. {
  77. e.Handled = true;
  78. }
Add Comment
Please, Sign In to add comment