Exemple #1
0
 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;
             }
         }
     }
     */
 }
Exemple #2
0
 void _gesturesinterpreter_Scale(object sender, GestureScaleEventArgs e)
 {
     if (Scale != null) Scale(this, e);
 }
Exemple #3
0
 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);
     }
 }
Exemple #4
0
        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);
                }
            }
        }