Esempio n. 1
0
            Log("Pressed", args);
            base.OnPointerPressed(args);
        }

        protected override void OnPointerReleased(PointerRoutedEventArgs args)
        {
            Log("Released", args);
            base.OnPointerReleased(args);
        }

        protected override void OnPointerWheelChanged(PointerRoutedEventArgs args)
        {
            Log("WheelChanged", args);
            base.OnPointerWheelChanged(args);
        }

        void Log(string eventName, PointerRoutedEventArgs args)
        {
            uint id = args.Pointer.PointerId;
            PointerInfo pointerInfo;
            string event_string = "";
            string header_string = "";
            DateTime eventTime = DateTime.Now;
Esempio n. 2
0
 /// <summary>
 /// Ghost follows pointer
 /// </summary>
 void OnMouseMoved(PointerInfo pointer)
 {
     // We only respond to mouse info
     var mouseInfo = pointer as MouseCursorInfo;
 }
        void Log(string eventName, PointerRoutedEventArgs args)
        {
            uint        id = args.Pointer.PointerId;
            PointerInfo pointerInfo;

            if (pointerDictionary.ContainsKey(id))
            {
                pointerInfo = pointerDictionary[id];
            }
            else
            {
                // New ID, so new StackPanel and header
                TextBlock header = new TextBlock
                {
                    Text       = args.Pointer.PointerId + " - " + args.Pointer.PointerDeviceType,
                    FontWeight = FontWeights.Bold
                };
                StackPanel stackPanel = new StackPanel();
                stackPanel.Children.Add(header);

                // New PointerInfo for dictionary
                pointerInfo = new PointerInfo
                {
                    stackPanel = stackPanel
                };
                pointerDictionary.Add(id, pointerInfo);

                // New column in the Grid for the StackPanel
                ColumnDefinition coldef = new ColumnDefinition
                {
                    Width = new GridLength(1, GridUnitType.Star)
                };
                contentGrid.ColumnDefinitions.Add(coldef);
                Grid.SetColumn(stackPanel, contentGrid.ColumnDefinitions.Count - 1);
                contentGrid.Children.Add(stackPanel);
            }

            // Don't repeat PointerMoved and PointerWheelChanged events
            TextBlock txtblk = null;

            if (eventName == pointerInfo.repeatEvent)
            {
                txtblk = pointerInfo.repeatTextBlock;
            }
            else
            {
                txtblk = new TextBlock();
                pointerInfo.stackPanel.Children.Add(txtblk);
            }

            txtblk.Text = eventName + " ";

            if (eventName == "WheelChanged")
            {
                txtblk.Text += args.GetCurrentPoint(this).Properties.MouseWheelDelta;
            }
            else
            {
                txtblk.Text += args.GetCurrentPoint(this).Position;
            }

            txtblk.Text += args.Pointer.IsInContact ? " C" : "";
            txtblk.Text += args.Pointer.IsInRange ? " R" : "";

            if (eventName == "Moved" || eventName == "WheelChanged")
            {
                pointerInfo.repeatEvent     = eventName;
                pointerInfo.repeatTextBlock = txtblk;
            }
            else
            {
                pointerInfo.repeatEvent     = null;
                pointerInfo.repeatTextBlock = null;
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Calculates the ray for a specified pointer in 3d space
 /// </summary>
 /// <param name="pointer">The pointer info</param>
 /// <returns>The ray representing a screen-space pointer in 3D space</returns>
 public Ray GetRayForPointer(PointerInfo pointer)
 {
     return(cachedCamera.ScreenPointToRay(pointer.currentPosition));
 }