Advertisement
Guest User

ScrollViewer Zoom/Pan Usage

a guest
Jan 18th, 2012
663
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.29 KB | None | 0 0
  1. public partial class MainWindow : Window {
  2.     private ScrollViewerZoomPanHelper zpHelper;
  3.     private ZoomSliderHelper zoomSliderHelper;
  4.     private bool internalUpdate = false;
  5.     public MainWindow() {
  6.         InitializeComponent();
  7.     }
  8.  
  9.     protected override void OnInitialized(EventArgs e) {
  10.         zoomSliderHelper = new ZoomSliderHelper() {
  11.             ValueRange = new Range<double>(zoomSlider.Minimum, zoomSlider.Maximum),
  12.             ZoomRange = new Range<double>(0.1, 3),
  13.             NumSteps = 20
  14.         };
  15.         zpHelper = new ScrollViewerZoomPanHelper() {
  16.             ScaledElement = (FrameworkElement)colorMapperAndLegend.ColorMapperCtrl.ScaledHolderElement,
  17.             ScrollViewer = colorMapperAndLegend.ScrollViewer,
  18.             MinZoom = zoomSliderHelper.ZoomRange.Min,
  19.             MaxZoom = zoomSliderHelper.ZoomRange.Max,
  20.             ChangePercent = zoomSliderHelper.ZoomStepSize
  21.         };
  22.         zpHelper.ZoomChanged += new System.EventHandler(zpHelper_ZoomChanged);
  23.     }
  24.    
  25.     private void zpHelper_ZoomChanged(object sender, System.EventArgs e) {
  26.         internalUpdate = true;
  27.         zoomSlider.Value = zoomSliderHelper.ZoomToSlider(zpHelper.Zoom);      
  28.         internalUpdate = false;
  29.     }
  30.    
  31.     private void zoomSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) {
  32.         if (internalUpdate) return;
  33.         zpHelper.Zoom = zoomSliderHelper.SliderToZoom(zoomSlider.Value);
  34.     }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement