예제 #1
0
        public void ValuesChanged(InteractionTracker sender, InteractionTrackerValuesChangedArgs args)
        {
            Debug.WriteLine($"Scale: {args.Scale}");
            Debug.WriteLine($"Position: {args.Position}");

            _newTrackerScale = args.Scale;
        }
예제 #2
0
        public void ValuesChanged(InteractionTracker sender, InteractionTrackerValuesChangedArgs args)
        {
            try
            {
                string diags = string.Empty;

                if (lastTrackerScale == args.Scale)
                {
                    diags = visibleRegionManager.UpdateVisibleRegion(sender.Position);
                }
                else
                {
                    // Don't run tilemanager during a zoom
                    // TODO need custom logic here eg for zoom out
                    zooming = true;
                }

                lastTrackerScale = args.Scale;

                hud.Display = $"X:{sender.Position.X:00000.00} Y:{sender.Position.Y:00000.00} Scale:{sender.Scale:00000.00} " + diags;
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }
예제 #3
0
 public void ValuesChanged(InteractionTracker sender, InteractionTrackerValuesChangedArgs args)
 {
     if (IsScrubbing)
     {
         var percent = -args.Position.X / this.ActualWidth;
         this.CurrentPercentage = percent;
     }
 }
예제 #4
0
        public void ValuesChanged(InteractionTracker sender, InteractionTrackerValuesChangedArgs args)
        {
            if (_indicator == null && ApiInfo.CanUseDirectComposition && (_tracker.Position.X > 0.0001f || _tracker.Position.X < -0.0001f) /*&& Math.Abs(e.Cumulative.Translation.X) >= 45*/)
            {
                var sprite = _visual.Compositor.CreateSpriteVisual();
                sprite.Size        = new Vector2(30, 30);
                sprite.CenterPoint = new Vector3(15);

                var surface = LoadedImageSurface.StartLoadFromUri(new Uri("ms-appx:///Assets/Images/Reply.png"));
                surface.LoadCompleted += (s, e) =>
                {
                    sprite.Brush = _visual.Compositor.CreateSurfaceBrush(s);
                };

                var ellipse = _visual.Compositor.CreateEllipseGeometry();
                ellipse.Radius = new Vector2(15);

                var ellipseShape = _visual.Compositor.CreateSpriteShape(ellipse);
                ellipseShape.FillBrush = _visual.Compositor.CreateColorBrush((Windows.UI.Color)App.Current.Resources["MessageServiceBackgroundColor"]);
                ellipseShape.Offset    = new Vector2(15);

                var shape = _visual.Compositor.CreateShapeVisual();
                shape.Shapes.Add(ellipseShape);
                shape.Size = new Vector2(30, 30);

                _indicator = _visual.Compositor.CreateContainerVisual();
                _indicator.Children.InsertAtBottom(shape);
                _indicator.Children.InsertAtTop(sprite);
                _indicator.Size        = new Vector2(30, 30);
                _indicator.CenterPoint = new Vector3(15);
                _indicator.Scale       = new Vector3();

                _container.Children.InsertAtTop(_indicator);

                //ElementCompositionPreview.SetElementChildVisual(this, _indicator);
                //ElementCompositionPreview.SetElementChildVisual(this, _container);
            }

            var offset = (_tracker.Position.X > 0 && !_reply) || (_tracker.Position.X <= 0 && !_forward) ? 0 : Math.Max(0, Math.Min(72, Math.Abs(_tracker.Position.X)));

            var abs     = Math.Abs(offset);
            var percent = abs / 72f;

            var width  = (float)ActualWidth;
            var height = (float)ActualHeight;

            if (_indicator != null)
            {
                _indicator.Offset  = new Vector3(_tracker.Position.X > 0 ? width - percent * 60 : -30 + percent * 55, (height - 30) / 2, 0);
                _indicator.Scale   = new Vector3(_tracker.Position.X > 0 ? 0.8f + percent * 0.2f : -(0.8f + percent * 0.2f), 0.8f + percent * 0.2f, 1);
                _indicator.Opacity = percent;
            }
        }
예제 #5
0
 public void ValuesChanged(InteractionTracker sender, InteractionTrackerValuesChangedArgs args)
 {
     try
     {
         var diags = visibleRegionManager.UpdateVisibleRegion(sender.Position);
         hud.Display = $"X:{sender.Position.X:00000.00} Y:{sender.Position.Y:00000.00} " + diags;
     }
     catch (Exception ex)
     {
         Debug.WriteLine(ex.Message);
     }
 }
예제 #6
0
        public async void ValuesChanged(InteractionTracker sender, InteractionTrackerValuesChangedArgs args)
        {
            var dragPercent = args.Position.Y / _maxDistance;

            if (_idleStateEntered)
            {
                _idleStateEntered = false;
            }
            else
            {
                Debug.WriteLine(dragPercent);
                await RomeShare.SendPositionDataAsync(dragPercent);
            }
        }
예제 #7
0
 void IInteractionTrackerOwner.ValuesChanged(InteractionTracker sender, InteractionTrackerValuesChangedArgs args)
 {
     if (!m_isInteracting && Math.Abs(args.Position.X) > CompletionThreshold)
     {
         SwipeDismissedArgs dismissedArgs = new SwipeDismissedArgs();
         if (args.Position.X < 0)
         {
             dismissedArgs.DismissedNear = true;
         }
         else
         {
             dismissedArgs.DismissedFar = true;
         }
         if (Dismissed != null)
         {
             Dismissed(this, dismissedArgs);
         }
     }
 }
예제 #8
0
        public void ValuesChanged(InteractionTracker sender, InteractionTrackerValuesChangedArgs args)
        {
            switch (refreshPullDirection)
            {
            case RefreshPullDirection.TopToBottom:
                RaiseInteractionRatioChanged(refreshVisualizerSize.Height == 0 ? 1.0 : Math.Min(1.0, (double)-args.Position.Y / refreshVisualizerSize.Height));
                break;

            case RefreshPullDirection.BottomToTop:
                RaiseInteractionRatioChanged(refreshVisualizerSize.Height == 0 ? 1.0f : Math.Min(1.0, (double)args.Position.Y / refreshVisualizerSize.Height));
                break;

            case RefreshPullDirection.LeftToRight:
                RaiseInteractionRatioChanged(refreshVisualizerSize.Width == 0 ? 1.0f : Math.Min(1.0, (double)-args.Position.X / refreshVisualizerSize.Width));
                break;

            case RefreshPullDirection.RightToLeft:
                RaiseInteractionRatioChanged(refreshVisualizerSize.Width == 0 ? 1.0f : Math.Min(1.0, (double)args.Position.X / refreshVisualizerSize.Width));
                break;
            }
        }
예제 #9
0
 public void ValuesChanged(InteractionTracker sender, InteractionTrackerValuesChangedArgs args)
 {
 }
 public void ValuesChanged(InteractionTracker sender, InteractionTrackerValuesChangedArgs args)
 {
     // Unused for this sample
 }
예제 #11
0
 public void ValuesChanged(InteractionTracker sender, InteractionTrackerValuesChangedArgs args)
 {
     // Store whether the item is expanded in order to know whether a mouse click should expand or collapse
     _isExpanded = (args.Position.Y > 0);
 }
 void IInteractionTrackerOwner.ValuesChanged(InteractionTracker sender, InteractionTrackerValuesChangedArgs args)
 {
     if (!m_isInteracting && Math.Abs(args.Position.X) > CompletionThreshold)
     {
         SwipeDismissedArgs dismissedArgs = new SwipeDismissedArgs();
         if (args.Position.X < 0)
         {
             dismissedArgs.DismissedNear = true;
         }
         else
         {
             dismissedArgs.DismissedFar = true;
         }
         if (Dismissed != null)
         {
             Dismissed(this, dismissedArgs);
         }
     }
 }
 void IInteractionTrackerOwner.ValuesChanged(InteractionTracker sender, InteractionTrackerValuesChangedArgs args)
예제 #14
0
 public void ValuesChanged(InteractionTracker sender, InteractionTrackerValuesChangedArgs args)
 {
     // Unused for this sample
 }
 public void ValuesChanged(InteractionTracker sender, InteractionTrackerValuesChangedArgs args)
 {
     position = args.Position;
     StateOrValuesChanged?.Invoke(sender, new Tuple <InteractionTrackerState, Vector3>(State, position));
 }