void _gesturesinterpreter_Scale(object sender, GestureScaleEventArgs e) { // Use GestureDetected event insted from this.Gestures object property /* if (e.ScaleFactor <= 0.94 && !_scrollertransformhelper.IsRunning && !_gesturescale) { _gesturescale = true; // IEnumerable<UIElement> hits = VisualTreeHelper.FindElementsInHostCoordinates(e.FingerA.StartPosition, Application.Current.RootVisual); foreach (FrameworkElement el in hits) { bool hookable = (bool)el.GetValue(HookableProperty); if (hookable) { _scrollertransformhelper.Delay = 0.5D; ZoomToElement(el, _scrollertransformhelper.Scale * 0.5); //e.ScaleFactor); break; } } } else if (e.ScaleFactor >= 1.06 && !_scrollertransformhelper.IsRunning && !_gesturescale) { _gesturescale = true; // IEnumerable<UIElement> hits = VisualTreeHelper.FindElementsInHostCoordinates(e.FingerA.StartPosition, Application.Current.RootVisual); foreach (FrameworkElement el in hits) { bool hookable = (bool)el.GetValue(HookableProperty); if (hookable) { _scrollertransformhelper.Delay = 0.5D; ZoomToElement(el, _scrollertransformhelper.Scale / 0.5); //e.ScaleFactor); break; } } } */ }
void _gesturesinterpreter_Scale(object sender, GestureScaleEventArgs e) { if (Scale != null) Scale(this, e); }
void MultiScaleImage_Scale(object sender, GestureScaleEventArgs e) { if (e.ScaleFactor != 1) { _zoomfactor *= e.ScaleFactor; Point zoomcenter; if (GesturesInterpreter.Fingers.Count > 1) { double d = Utility.Vector2D.Distance(e.FingerA.Position, e.FingerB.Position); double a = Utility.Vector2D.GetAngle(e.FingerA.Position, e.FingerB.Position); Point c = Utility.Vector2D.GetPoint(e.FingerA.Position, d / 2, a * Math.PI / 180); zoomcenter = Application.Current.RootVisual.TransformToVisual(_msi).Transform(c); } else { zoomcenter = new Point((this.ActualWidth / 2), (this.ActualHeight / 2)); zoomcenter = Application.Current.RootVisual.TransformToVisual(_msi).Transform(zoomcenter); } Zoom(e.ScaleFactor, zoomcenter); } }
void _gesturesinterpreter_Scale(object sender, GestureScaleEventArgs e) { //_transformhelper.Scale *= (e.ScaleFactor); //this.Opacity = (_transformhelper.Scale <= 1 ? _transformhelper.Scale : 1); if (_currentcanvas == null) { IEnumerable<UIElement> hitresults = VisualTreeHelper.FindElementsInHostCoordinates(_gesturesinterpreter.Centroid, this); foreach (UIElement el in hitresults) { if (el is MIRIA.UIKit.TCanvas) { _currentcanvas = (el as MIRIA.UIKit.TCanvas); _currentcanvas.SetValue(TCanvas.ZIndexProperty, 255); break; } } } if (_currentcanvas != null && _currentcanvas.TransformHelper.Scale != 1.3 && !_openeventfired) { _currentcanvas.TransformHelper.Scale *= e.ScaleFactor; if (_currentcanvas.TransformHelper.Scale < 1.0) _currentcanvas.TransformHelper.Scale = 1.0; else if (_currentcanvas.TransformHelper.Scale > 1.3) { _currentcanvas.TransformHelper.Scale = 1.3; } if (_currentcanvas.TransformHelper.Scale == 1.3) { _openeventfired = true; if (Open != null) Open(_currentcanvas); } } }