private void SwipeableTextBlock_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            if (e.IsInertial && !_isSwiped)
            {
                var swipedDistance = e.Cumulative.Translation.X;

                if (Math.Abs(swipedDistance) <= 2)
                {
                    return;
                }

                if (swipedDistance > 0)
                {
                    if (currentWein != 0)
                    {
                        currentWein--;
                    }
                    else
                    {
                        currentWein = WeinList.Count - 1;
                    }
                    Load_Wine(currentWein);
                }
                else
                {
                    if (currentWein != WeinList.Count - 1)
                    {
                        currentWein++;
                    }
                    else
                    {
                        currentWein = 0;
                    }
                    Load_Wine(currentWein);
                }
                _isSwiped = true;
            }
        }
Esempio n. 2
0
        private void _rectTopLeft_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            if (ContentIsTextbox == true)
            {
                MoveAndRestrain(e);
            }
            else
            {
                // Get top left point
                GeneralTransform gt           = this.TransformToVisual((Panel)this.Parent);
                Point            TopLeftPoint = gt.TransformPoint(new Point(0, 0));

                // Set these to represent the edges
                double left = TopLeftPoint.X;
                double top  = TopLeftPoint.Y;

                // Combine the adjustable edges with the movement value
                double leftAdjust = left + e.Delta.Translation.X;
                double topAdjust  = top + e.Delta.Translation.Y;

                // Set these to use for restricting the minimum size
                double yadjust = this.ActualHeight - e.Delta.Translation.Y;
                double xadjust = this.ActualWidth - e.Delta.Translation.X;

                // Allow adjustment within restrictions
                if ((leftAdjust >= 0) && (xadjust >= minWidth))
                {
                    transform_myControl.TranslateX += e.Delta.Translation.X;
                    this.Width = xadjust;
                }

                if ((topAdjust >= 0) && (yadjust >= minHeight))
                {
                    transform_myControl.TranslateY += e.Delta.Translation.Y;
                    this.Height = yadjust;
                }
            }
        }
Esempio n. 3
0
        private void OnManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            double deltaX = e.Delta.Translation.X;

            if (this.ActualWidth > this.ItemWidth * _panel.ItemsCount)
            {
                e.Complete();
                e.Handled = true;
                return;
            }

            if (this.Position + deltaX > this.ItemWidth / 2.5)
            {
                e.Complete();
                e.Handled = true;
                return;
            }

            if (this.Position + deltaX < -(this.ItemWidth * _panel.ItemsCount - this.ActualWidth) - this.ItemWidth / 2.5)
            {
                e.Complete();
                e.Handled = true;
                return;
            }

            int itemsPerThird = (int)Math.Ceiling(this.ActualWidth / this.ItemWidth);

            if (Math.Abs(e.Cumulative.Translation.X) >= this.ItemWidth * itemsPerThird)
            {
                e.Complete();
            }
            else
            {
                _panel.TranslateDeltaX(deltaX);
            }

            e.Handled = true;
        }
Esempio n. 4
0
        private void HandlePanManipulation(ManipulationDeltaRoutedEventArgs args)
        {
            var rectangle = new RadRect(args.Container.RenderSize.Width, args.Container.RenderSize.Height);
            var point     = args.Position;

            var x = point.X;
            var y = point.Y;

            var dx = args.Delta.Translation.X;
            var dy = args.Delta.Translation.Y;

            var manipulationStartPointInside = rectangle.Contains(x, y);
            var manipulationEndPointInside   = rectangle.Contains(x + dx, y + dy);

            if (!manipulationStartPointInside && !manipulationEndPointInside)
            {
                // pointer was outside during the whole manipulation, nothing should happen
                return;
            }

            if (manipulationEndPointInside)
            {
                // at the end the pointer is inside the container => handle point manipulation
                this.HandlePointManipulation(new Point(x + dx, y + dx));
            }
            else
            {
                // the pointer has left the contained during the manipulation - should determine the direction
                var manipulationLeavingPointDirection = this.GetManipulationDirection(dy, dx, y, x, rectangle);

                this.HandleManipulationLeavesRating(manipulationLeavingPointDirection);

                if (this.freezeDisplayValue)
                {
                    this.UpdateFillRatio();
                }
            }
        }
Esempio n. 5
0
        private void Handle_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            var transform = (sender as Grid).RenderTransform as CompositeTransform;
            var translate = (LeftHandle.RenderTransform as CompositeTransform).TranslateX;

            double translateX = transform.TranslateX + e.Delta.Translation.X;

            if (transform == LeftHandleTransform)
            {
                if (translateX < 0 || ((translateX + HandleSize) > RightHandleTransform.TranslateX))
                {
                    return;
                }

                transform.TranslateX = translateX;

                if (MinValueChanged != null)
                {
                    MinValueChanged(this, new ValueChangedEventArgs(Min));
                }
            }
            else if (transform == RightHandleTransform)
            {
                if ((translateX + HandleSize) > Width || (translateX < LeftHandleTransform.TranslateX + HandleSize))
                {
                    return;
                }

                transform.TranslateX = translateX;

                if (MaxValueChanged != null)
                {
                    MaxValueChanged(this, new ValueChangedEventArgs(Max));
                }
            }

            UpdateInner();
        }
Esempio n. 6
0
        //</SnippetDeclareSourceRect>

        //<SnippetManipulationDelta>
        private void _mediaPlayerElement_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            if (e.Delta.Scale != 1)
            {
                var halfWidth  = _sourceRect.Width / 2;
                var halfHeight = _sourceRect.Height / 2;

                var centerX = _sourceRect.X + halfWidth;
                var centerY = _sourceRect.Y + halfHeight;

                var scale         = e.Delta.Scale;
                var newHalfWidth  = (_sourceRect.Width * e.Delta.Scale) / 2;
                var newHalfHeight = (_sourceRect.Height * e.Delta.Scale) / 2;

                if (centerX - newHalfWidth > 0 && centerX + newHalfWidth <= 1.0 &&
                    centerY - newHalfHeight > 0 && centerY + newHalfHeight <= 1.0)
                {
                    _sourceRect.X       = centerX - newHalfWidth;
                    _sourceRect.Y       = centerY - newHalfHeight;
                    _sourceRect.Width  *= e.Delta.Scale;
                    _sourceRect.Height *= e.Delta.Scale;
                }
            }
            else
            {
                var translateX = -1 * e.Delta.Translation.X / _mediaPlayerElement.ActualWidth;
                var translateY = -1 * e.Delta.Translation.Y / _mediaPlayerElement.ActualHeight;

                if (_sourceRect.X + translateX >= 0 && _sourceRect.X + _sourceRect.Width + translateX <= 1.0 &&
                    _sourceRect.Y + translateY >= 0 && _sourceRect.Y + _sourceRect.Height + translateY <= 1.0)
                {
                    _sourceRect.X += translateX;
                    _sourceRect.Y += translateY;
                }
            }

            _mediaPlayer.PlaybackSession.NormalizedSourceRect = _sourceRect;
        }
        private void LayoutRoot_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            if (e.IsInertial)
            {
                e.Complete();
                return;
            }

            var delta = (float)e.Delta.Translation.X;
            var width = (float)ActualWidth;

            var current  = -(_selectedIndex * width);
            var previous = current + width;
            var next     = current - width;

            var maximum = next;
            var minimum = previous;

            if (_selectedIndex == 0)
            {
                minimum = 0;
            }
            else if (_selectedIndex == 5)
            {
                maximum = current;
            }

            var offset = _layoutVisual.Offset;

            offset.X = Math.Max(maximum, Math.Min(minimum, offset.X + delta));

            var position = Math.Max(maximum, Math.Min(minimum, offset.X)) / width;

            position += _selectedIndex;

            _layoutVisual.Offset = offset;
            _renderer?.SetScroll(-position);
        }
Esempio n. 8
0
        private void ImageThumb_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            if (e.Delta.Scale != 1.0)
            {
                double width;
                double height;
                var    imageScale = m_imageRectangle.Width / m_imageRectangle.Height;

                if (m_thumbsRectangle.Width / m_thumbsRectangle.Height < imageScale)
                {
                    height = Math.Max(m_imageRectangle.Height * e.Delta.Scale, m_thumbsRectangle.Height);
                    width  = height * imageScale;
                }
                else
                {
                    width  = Math.Max(m_imageRectangle.Width * e.Delta.Scale, m_thumbsRectangle.Width);
                    height = width / imageScale;
                }

                m_imageRectangle.X      = Clamp(m_imageRectangle.Left + (m_imageRectangle.Width - width) / 2.0, m_thumbsRectangle.Right - width, m_thumbsRectangle.Left);
                m_imageRectangle.Y      = Clamp(m_imageRectangle.Top + (m_imageRectangle.Height - height) / 2.0, m_thumbsRectangle.Bottom - height, m_thumbsRectangle.Top);
                m_imageRectangle.Width  = width;
                m_imageRectangle.Height = height;

                UpdateCropRectangle(false);

                e.Handled = true;
            }
            else if (e.Delta.Translation.X != 0.0 || e.Delta.Translation.Y != 0.0)
            {
                m_imageRectangle.X = Clamp(m_imageRectangle.Left + e.Delta.Translation.X, m_thumbsRectangle.Right - m_imageRectangle.Width, m_thumbsRectangle.Left);
                m_imageRectangle.Y = Clamp(m_imageRectangle.Top + e.Delta.Translation.Y, m_thumbsRectangle.Bottom - m_imageRectangle.Height, m_thumbsRectangle.Top);

                UpdateCropRectangle(false);

                e.Handled = true;
            }
        }
Esempio n. 9
0
        protected override void OnManipulationDelta(ManipulationDeltaRoutedEventArgs args)
        {
            manipulationManager.AccumulateDelta(args.Position, args.Delta);
            matrixXform.Matrix = manipulationManager.Matrix;
            // Make this the entire transform to date
            //matrixXform.Matrix = xformGroup.Value;

            // Use that to transform the Position property
            //Point center = matrixXform.TransformPoint(args.Position);

            // That becomes the center of the new incremental transform
            //compositeXform.CenterX = center.X;
            //compositeXform.CenterY = center.Y;

            // Set the other properties
            //compositeXform.TranslateX = args.Delta.Translation.X;
            //compositeXform.TranslateY = args.Delta.Translation.Y;
            //compositeXform.ScaleX = args.Delta.Scale;
            //compositeXform.ScaleY = args.Delta.Scale;
            //compositeXform.Rotation = args.Delta.Rotation;

            base.OnManipulationDelta(args);
        }
Esempio n. 10
0
        private void SourceImage_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            var diffPos = e.Delta.Translation;
            var inverseImageTransform = _imageTransform.Inverse;

            if (inverseImageTransform != null)
            {
                var startPoint = new Point(_startX - diffPos.X, _startY - diffPos.Y);
                var endPoint   = new Point(_endX - diffPos.X, _endY - diffPos.Y);
                if (_restrictedSelectRect.IsSafePoint(startPoint) && _restrictedSelectRect.IsSafePoint(endPoint))
                {
                    var selectedRect = new Rect(startPoint, endPoint);
                    if ((selectedRect.Width - MinSelectSize.Width) < -0.001 || (selectedRect.Height - MinSelectSize.Height) < -0.001)
                    {
                        return;
                    }
                    var movedRect = inverseImageTransform.TransformBounds(selectedRect);
                    movedRect.Intersect(_restrictedCropRect);
                    _currentCroppedRect = movedRect;
                    UpdateImageLayout();
                }
            }
        }
Esempio n. 11
0
        private void Select_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            //System.Diagnostics.Debug.WriteLine("X :: " + e.Delta.Translation.X);
            //System.Diagnostics.Debug.WriteLine("Y :: " + e.Delta.Translation.Y);

            //dragTranslation.X += e.Delta.Translation.X;
            // dragTranslation.Y += e.Delta.Translation.Y;


            var translate = (TranslateTransform)Select.RenderTransform;

            var newPosX = Canvas.GetLeft(Select) + translate.X + e.Delta.Translation.X;
            var newPosY = Canvas.GetTop(Select) + translate.Y + e.Delta.Translation.Y;

            if (!isBoundary(newPosX, CanvasRoot.ActualWidth - Select.ActualWidth, 0))
            {
                translate.X += e.Delta.Translation.X;
            }
            if (!isBoundary(newPosY, CanvasRoot.ActualHeight - Select.ActualHeight, 0))
            {
                translate.Y += e.Delta.Translation.Y;
            }
        }
Esempio n. 12
0
        private void Canvas_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            if (Math.Abs(e.Cumulative.Translation.X) >= this.ActualWidth)
            {
                e.Complete();
                return;
            }

            if (_firstItem != null)
            {
                ((CompositeTransform)_firstItem.RenderTransform).TranslateX += e.Delta.Translation.X;
            }

            if (_secondItem != null)
            {
                ((CompositeTransform)_secondItem.RenderTransform).TranslateX += e.Delta.Translation.X;
            }

            if (_thirdItem != null)
            {
                ((CompositeTransform)_thirdItem.RenderTransform).TranslateX += e.Delta.Translation.X;
            }
        }
Esempio n. 13
0
        private void _popup_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            var Host = (FrameworkElement)this.Parent;
            var _translatetransform = _popup.RenderTransform as CompositeTransform;
            var enddelta            = _translatetransform.TranslateY + e.Delta.Translation.Y;

            if (enddelta >= Host.ActualHeight)
            {
                _translatetransform.TranslateY = Host.ActualHeight;
            }
            else if (double.IsNaN(PopupHeight) && enddelta < 100)
            {
                _translatetransform.TranslateY = 100;
            }
            else if (enddelta < (Host.ActualHeight - PopupHeight))
            {
                _translatetransform.TranslateY = (Host.ActualHeight - PopupHeight);
            }
            else
            {
                _translatetransform.TranslateY += e.Delta.Translation.Y;
            }
        }
Esempio n. 14
0
        private void ScrollViewer_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            if (_mainScrollViewer == null)
            {
                return;
            }
            var verticalOffset    = _mainScrollViewer.VerticalOffset;
            var movement          = e.Cumulative.Translation.Y; // *e.Velocities.Linear.Y;
            var newVerticalOffset = verticalOffset - movement;

/*
 *          Debug.WriteLine(string.Empty);
 *          Debug.WriteLine(movement);
 *          Debug.WriteLine("Vertical offset:" + verticalOffset);
 *          Debug.WriteLine("Y translation:" + e.Delta.Translation.Y);
 *          Debug.WriteLine("Velocity:" + e.Velocities.Linear.Y);
 *          Debug.WriteLine("Movement:" + movement);
 *          Debug.WriteLine("New vertical offset:" + newVerticalOffset);
 */
            _mainScrollViewer.ChangeView(null, newVerticalOffset, null, false);

            OnManipulationDelta(e);
        }
        // Process the change resulting from a manipulation
        void ManipulateMe_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            // If the reset button has been pressed, mark the manipulation as completed
            if (forceManipulationsToEnd)
            {
                e.Complete();
                return;
            }

            previousTransform.Matrix = transforms.Value;

            // Get center point for rotation
            Point center = previousTransform.TransformPoint(new Point(e.Position.X, e.Position.Y));

            deltaTransform.CenterX = center.X;
            deltaTransform.CenterY = center.Y;

            // Look at the Delta property of the ManipulationDeltaRoutedEventArgs to retrieve
            // the rotation, scale, X, and Y changes
            deltaTransform.Rotation   = e.Delta.Rotation;
            deltaTransform.TranslateX = e.Delta.Translation.X;
            deltaTransform.TranslateY = e.Delta.Translation.Y;
        }
Esempio n. 16
0
        protected virtual async void OnManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            transformTranslation.X += e.Delta.Translation.X;
            transformTranslation.Y += e.Delta.Translation.Y;
            transformRotation      += e.Delta.Rotation;
            transformScale         *= e.Delta.Scale;

            if (!transformPending)
            {
                transformPending = true;

                await Dispatcher.RunIdleAsync(a =>
                {
                    TransformMap(e.Position, transformTranslation, transformRotation, transformScale);

                    transformPending       = false;
                    transformTranslation.X = 0d;
                    transformTranslation.Y = 0d;
                    transformRotation      = 0d;
                    transformScale         = 1d;
                });
            }
        }
Esempio n. 17
0
        private void Grip_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            var detail = Children[0];
            var master = Children[1] as FrameworkElement;
            var grip   = Children[2];

            var newWidth = master.ActualWidth + e.Cumulative.Translation.X;
            var newRatio = (newWidth < columnMinimalWidthLeft / 2)
                ? 0
                : newWidth / ActualWidth;

            if (newRatio == 0 && _allowCompact)
            {
                newWidth = columnCompactWidthLeft;
            }
            else
            {
                newWidth = CountDialogsWidthFromRatio(ActualWidth, newRatio);
            }

            grip.Arrange(new Rect(newWidth, 0, 12, ActualHeight));
            gripWidthRatio = newRatio;
        }
Esempio n. 18
0
        private void Manipulator_OnManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            //if (_isResizing)
            //{
            //    //Width += e.Delta.Translation.X;
            //    //Height += e.Delta.Translation.Y;
            //}
            //else
            {
                CTransform.TranslateX += e.Delta.Translation.X;

                CTransform.TranslateY += e.Delta.Translation.Y;

                try
                {
                    SettingsHelper.Settings.LockControlX = CTransform.TranslateX;
                    SettingsHelper.Settings.LockControlY = CTransform.TranslateY;
                }
                catch { }
                //Canvas.SetLeft(this, Canvas.GetLeft(this) + e.Delta.Translation.X);
                //Canvas.SetTop(this, Canvas.GetTop(this) + e.Delta.Translation.Y);
            }
        }
Esempio n. 19
0
        private void OnManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            if (_translate == null)
            {
                return;
            }

            _translate.X += e.Delta.Translation.X;
            _translate.Y += e.Delta.Translation.Y;

            var currentPosition = (_floatingElement).TransformToVisual(ParentPage).TransformPoint(new Point(0, 0));

            var currentXPosition = currentPosition.X;
            var currentYPosition = currentPosition.Y;

            _isOverLocation = LocationCommandMappings
                              .FirstOrDefault(lcm =>
                                              lcm.Location != null &&
                                              (lcm.Location.Position.X <= currentXPosition && currentXPosition <= (lcm.Location.Position.X + lcm.Location.Size.Width)) &&
                                              (lcm.Location.Position.Y <= currentYPosition && currentYPosition <= (lcm.Location.Position.Y + lcm.Location.Size.Height)));

            e.Handled = true;
        }
        private void Handle_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            Rectangle handle        = sender as Rectangle;  // Get the handle being moved
            Point     allowedDeleta = (Point)handle.Tag;    // Get the allowed X/Y deltas for this handle

            if (allowedDeleta.X != 0)
            {
                double left = _gaugeItem.GaugeLeft + e.Delta.Translation.X * e.Delta.Scale;
                _gaugeItem.GaugeLeft = Math.Max(0, left);

                double width = _gaugeItem.GaugeWidth + e.Delta.Translation.X * e.Delta.Scale * allowedDeleta.X;
                _gaugeItem.GaugeWidth = Math.Max(10, width);
            }

            if (allowedDeleta.Y != 0)
            {
                double top = _gaugeItem.GaugeTop + e.Delta.Translation.Y * e.Delta.Scale;
                _gaugeItem.GaugeTop = Math.Max(0, top);

                double height = _gaugeItem.GaugeHeight + e.Delta.Translation.Y * e.Delta.Scale * allowedDeleta.Y;
                _gaugeItem.GaugeHeight = Math.Max(10, height);
            }
        }
Esempio n. 21
0
        private void GenericMediaDataElement_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            // Don't allow user to pan if no zoom has been applied.
            if (MediaScrollViewer.ZoomFactor == 1.0f)
            {
                return;
            }

            MediaTransform.TranslateX += e.Delta.Translation.X / MediaScrollViewer.ZoomFactor;
            MediaTransform.TranslateY += e.Delta.Translation.Y / MediaScrollViewer.ZoomFactor;

            var elementBounds      = MediaTransform.TransformBounds(new Rect(0.0, 0.0, GenericMediaDataElement.ActualWidth, GenericMediaDataElement.ActualHeight));
            var containerRect      = new Rect(0.0, 0.0, MediaScrollViewer.ViewportWidth, MediaScrollViewer.ViewportHeight);
            var isPartiallyVisible = containerRect.Contains(new Point(elementBounds.Left, elementBounds.Top)) || containerRect.Contains(new Point(elementBounds.Right, elementBounds.Bottom));
            var isFullyVisible     = containerRect.Contains(new Point(elementBounds.Left, elementBounds.Top)) && containerRect.Contains(new Point(elementBounds.Right, elementBounds.Bottom));

            // Check if the rectangle is completely in the window.
            // If it is not and intertia is occuring, stop the manipulation.
            if (e.IsInertial && !isPartiallyVisible)
            {
                e.Complete();
            }
        }
Esempio n. 22
0
        private void BDswip_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            e.Handled = true;

            // 仅当 SplitView 处于 Overlay 模式时(窗口宽度最小时)
            if (SPVmenu.DisplayMode == SplitViewDisplayMode.Overlay)
            {
                if (PaneRoot == null)
                {
                    // 找到 SplitView 控件中,模板的父容器
                    Grid grid = Util.FindVisualChild <Grid>(SPVmenu);

                    PaneRoot = grid.FindName("PaneRoot") as Grid;

                    if (from_ClosedToOpenOverlayLeft_Transition == null)
                    {
                        // 获取 SplitView 模板中“视觉状态集合”
                        IList <VisualStateGroup> stateGroup = VisualStateManager.GetVisualStateGroups(grid);

                        //  获取 VisualTransition 对象的集合。
                        IList <VisualTransition> transitions = stateGroup[0].Transitions;

                        // 找到 SplitView.IsPaneOpen 设置为 true 时,播放的 transition
                        from_ClosedToOpenOverlayLeft_Transition = transitions?.Where(train => train.From == "Closed" && train.To == "OpenOverlayLeft").First();
                    }
                }
                // 默认为 Collapsed,所以先显示它
                PaneRoot.Visibility = Visibility.Visible;

                // 当在 Border 上向右滑动,并且滑动的总距离需要小于 Panel 的默认宽度。否则会脱离左侧窗口,继续向右拖动
                if (e.Cumulative.Translation.X >= 0 && e.Cumulative.Translation.X < SPVmenu.OpenPaneLength)
                {
                    CompositeTransform ct = PaneRoot.RenderTransform as CompositeTransform;
                    ct.TranslateX = (e.Cumulative.Translation.X - SPVmenu.OpenPaneLength);
                }
            }
        }
Esempio n. 23
0
        void ChildrenAddGrid_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            MovingWithAndHeight();
            if (forceManipulationsToEnd)
            {
                e.Complete();
                return;
            }

            //放大
            ct.ScaleX = ct.ScaleY *= e.Delta.Scale;
            //旋转
            //e.Delta.Rotation 原来是弧度 需要(e.Delta.Rotation * 180 / Math.PI)
            //ct.Rotation += (e.Delta.Rotation * 180 / Math.PI);
            //现在是角度
            ct.Rotation += e.Delta.Rotation;
            //ct.CenterX = (this.ChildrenAddGrid as FrameworkElement).ActualWidth / 2;
            //ct.CenterY = (this.ChildrenAddGrid as FrameworkElement).ActualHeight / 2;
            //平移
            ct.TranslateX += e.Delta.Translation.X;
            ct.TranslateY += e.Delta.Translation.Y;

            if (System.Math.Round(ct.ScaleX, 1) <= 0.25)
            {
                ct.ScaleX = 0.25;
                ct.ScaleY = 0.25;
            }

            if (System.Math.Abs(ct.TranslateY) >= movingInterpolationH || System.Math.Abs(ct.TranslateX) >= movingInterpolationW)
            {
                if (MovingBeyondTheBorderComplete != null)
                {
                    this.MovingBeyondTheBorderComplete();
                }
            }
            e.Handled = true;
        }
        private void ellRightTop_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            if ((rectRectangleForMovement.Width + e.Delta.Translation.X) >= MIN_RECTANGLE_MOVE_WIDTH &&
                (rectRectangleForMovement.Height + (e.Delta.Translation.Y * -1)) >= MIN_RECTANGLE_MOVE_HEIGHT)
            {
                var moveX   = createTranslateTransform(Math.Round(e.Delta.Translation.X), 0.0);
                var moveY   = createTranslateTransform(0.0, Math.Round(e.Delta.Translation.Y));
                var moveXY  = createTranslateTransform(moveX.X, moveY.Y);
                var moveX2  = createTranslateTransform(moveX.X / 2.0, 0.0);
                var moveY2  = createTranslateTransform(0.0, moveY.Y / 2.0);
                var moveX2Y = createTranslateTransform(moveX2.X, moveY.Y);
                var moveXY2 = createTranslateTransform(moveX.X, moveY2.Y);
                setGridTransformsOfEllipses(moveX2, moveX2Y, moveXY2, moveY2,
                                            null, moveY, moveX, moveXY);

                changeMarginRightOfUiElements(moveX.X);
                changeWidthOfUiElements(moveX.X);

                changeHeightOfUiElements(moveY.Y * -1.0);
                changeMarginTopOfUiElements(moveY.Y * -1.0);

                setSizeOfRecBar(rectRectangleToDraw.Height, rectRectangleToDraw.Width);
            }
        }
Esempio n. 25
0
        private void Grid_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            e.Handled = true;

            //progress.Visibility = Visibility.Visible;
            double X = e.Delta.Translation.X;

            if (X > 0)
            {
                double dd = X / this.ActualWidth;
                double d  = dd * 90;
                ssValue += d;
                //slider.Value += d;
                Utils.ShowMessageToast("+" + ssValue.ToInt32() + "S", 2000);
            }
            else
            {
                double dd = Math.Abs(X) / this.ActualWidth;
                double d  = dd * 90;
                ssValue -= d;
                //slider.Value -= d;
                Utils.ShowMessageToast("-" + ssValue.ToInt32() + "S", 2000);
            }
        }
Esempio n. 26
0
        private void theCanvas_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            if (isInInertion)
            {
                return;
            }
            var top  = Canvas.GetTop(this.rect);
            var left = Canvas.GetLeft(this.rect);

            top  += e.Delta.Translation.Y;
            left += e.Delta.Translation.X;

            var scale = e.Delta.Scale;

            //var oldWidth = this.rect.Width;
            //var oldHeight = this.rect.Height;

            //this.rect.Width *= scale;
            //this.rect.Height *= scale;

            //top -= (this.rect.Height - oldHeight) / 2;
            //left -= (this.rect.Width - oldWidth) / 2;

            Canvas.SetTop(this.rect, top);
            Canvas.SetLeft(this.rect, left);

            var transform = this.rect.RenderTransform as CompositeTransform;

            //transform.ScaleX += e.Delta.Scale / 100;
            //transform.ScaleY += e.Delta.Scale / 100;

            transform.CenterX   = this.rect.Width / 2;
            transform.CenterY   = this.rect.Height / 2;
            transform.Rotation += e.Delta.Rotation;
            //transform.Angle += e.Delta.Rotation;
        }
Esempio n. 27
0
 /// <summary>
 /// Word opgeroepen tijdens het swypen.
 /// er wordt gecontroleerd of de swype beëindigd is of niet (e.IsInertial). Indien wel, dan wordt het eindpunt bepaald
 /// en wordt gekeken of de swype afstand op de X-as ver genoeg was om de menuanimatie te starten.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 void PaginaGrid_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
 {
     if (e.IsInertial)
     {
         Point  eindPunt = e.Position;
         double afstand  = eindPunt.X - beginPunt.X;
         if (afstand >= 500)//500 is the threshold value, where you want to trigger the swipe right event
         {
             e.Complete();
             if (!ucMenu.IsMenuOpen())
             {
                 ucMenu.BeginMenuAnimatie();
             }
         }
         else if (afstand <= -500)
         {
             e.Complete();
             if (ucMenu.IsMenuOpen())
             {
                 ucMenu.BeginMenuAnimatie();
             }
         }
     }
 }
Esempio n. 28
0
        void OnManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            var x = _panAreaTransform.TranslateX + e.Delta.Translation.X;

            // keep the pan within the bountry
            if (x < PanAreaInitialTranslateX || x > 0)
            {
                return;
            }

            // while we are panning the PanArea on X axis, let's sync the PaneRoot's position X too
            _paneRootTransform.TranslateX = _panAreaTransform.TranslateX = x;

            if (sender == _paneRoot && this.IsPanSelectorEnabled)
            {
                // un-highlight everything first
                foreach (var item in _menuItems)
                {
                    VisualStateManager.GoToState(item, "Normal", true);
                }

                _toBeSelectedIndex = (int)Math.Round((e.Cumulative.Translation.Y + _startingDistance) / _distancePerItem, MidpointRounding.AwayFromZero);
                if (_toBeSelectedIndex < 0)
                {
                    _toBeSelectedIndex = 0;
                }
                else if (_toBeSelectedIndex >= _menuItems.Count)
                {
                    _toBeSelectedIndex = _menuItems.Count - 1;
                }

                // highlight the item that's going to be selected
                var itemContainer = _menuItems[_toBeSelectedIndex];
                VisualStateManager.GoToState(itemContainer, "PointerOver", true);
            }
        }
        void HandlePinch(ManipulationDeltaRoutedEventArgs e, View view)
        {
            if (_fingers.Count < 2 || view == null)
            {
                return;
            }

            _isPinching = true;

            Windows.Foundation.Point translationPoint = e.Container.TransformToVisual(Container).TransformPoint(e.Position);

            var scaleOriginPoint = new Point(translationPoint.X / view.Width, translationPoint.Y / view.Height);
            IEnumerable <PinchGestureRecognizer> pinchGestures = view.GestureRecognizers.GetGesturesFor <PinchGestureRecognizer>();

            foreach (PinchGestureRecognizer recognizer in pinchGestures)
            {
                if (!_wasPinchGestureStartedSent)
                {
                    recognizer.SendPinchStarted(view, scaleOriginPoint);
                }
                recognizer.SendPinch(view, e.Delta.Scale, scaleOriginPoint);
            }
            _wasPinchGestureStartedSent = true;
        }
Esempio n. 30
0
        private void SwipeablePage_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
            if (e.IsInertial && !_isSwiped)
            {
                var swipedDistance = e.Cumulative.Translation.X;

                if (Math.Abs(swipedDistance) <= 2)
                {
                    return;
                }

                if (swipedDistance > 0)
                {
                    Debug.WriteLine("Swapping: Right Swapped");
                    Frame.Navigate(typeof(MainPage), null);
                }
                else
                {
                    Debug.WriteLine("Swapping: Left Swapped");
                    //SwipeableTextBlock.Text = "Left Swiped";
                }
                _isSwiped = true;
            }
        }
Esempio n. 31
0
        /// <summary>
        /// Called before the ManipulationDelta event occurs.
        /// </summary>
        /// <param name="e">Event data for the event.</param>
        protected override void OnManipulationDelta(ManipulationDeltaRoutedEventArgs e)
        {
            base.OnManipulationDelta(e);

            if (e.Handled)
            {
                return;
            }

            if (e.PointerDeviceType == PointerDeviceType.Touch)
            {
                e.Handled = this.ActualController.HandleTouchDelta(this, e.ToTouchEventArgs(this));
            }
        }
Esempio n. 32
0
 public virtual void OnManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
 {
     var el = e.OriginalSource as View;
     int x = el.Left + e.Delta.Translation.X;
     int y = el.Top + e.Delta.Translation.Y;
     // left, top は同時に設定する必要あり
     // RelativeLayoutHelper.SetLeft(el, x);
     // RelativeLayoutHelper.SetTop(el, y);
     RelativeLayoutHelper.SetXY(el, x, y);
 }