From 26cee052a5b20d7a5bdb597776c55dcd3da2da62 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Thu, 23 May 2019 16:44:30 +0300 Subject: Implemented new Twine color catalog ! --- .../ExtensionMethods/FrameworkElementExtensions.cs | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) (limited to 'Software/Visual_Studio/Tango.Core/ExtensionMethods') diff --git a/Software/Visual_Studio/Tango.Core/ExtensionMethods/FrameworkElementExtensions.cs b/Software/Visual_Studio/Tango.Core/ExtensionMethods/FrameworkElementExtensions.cs index 7539deba2..040668f7d 100644 --- a/Software/Visual_Studio/Tango.Core/ExtensionMethods/FrameworkElementExtensions.cs +++ b/Software/Visual_Studio/Tango.Core/ExtensionMethods/FrameworkElementExtensions.cs @@ -435,6 +435,70 @@ public static class FrameworkElementExtensions RegisterForMouseOrTouchMove(element, null, handler); } + /// + /// Registers for mouse or stylus move. + /// + /// The element. + /// The relative to. + /// The handler. + public static void RegisterForMouseOrStylusMove(this FrameworkElement element, FrameworkElement relativeTo, EventHandler handler) + { + bool _isTouch = false; + + MouseEventHandler mouseHandler = (x, e) => + { + if (!_isTouch) + { + var args = new MouseOrTouchEventArgs() + { + Location = new Point(e.GetPosition(relativeTo != null ? relativeTo : element).X, e.GetPosition(relativeTo != null ? relativeTo : element).Y), + Source = e.Source, + OriginalSource = e.OriginalSource, + Handled = e.Handled, + GetPositionAction = e.GetPosition + }; + + handler(element, args); + e.Handled = args.Handled; + } + }; + + //element.MouseMove += mouseHandler; + element.AddHandler(FrameworkElement.MouseMoveEvent, mouseHandler); + + StylusEventHandler touchHandler = (x, e) => + { + _isTouch = true; + + var args = new MouseOrTouchEventArgs() + { + Location = new Point(e.GetPosition(relativeTo != null ? relativeTo : element).X, e.GetPosition(relativeTo != null ? relativeTo : element).Y), + Source = e.Source, + OriginalSource = e.OriginalSource, + Handled = e.Handled, + GetPositionAction = (s) => { return e.GetPosition(s); }, + StylusDevice = e.StylusDevice, + }; + + handler(element, args); + e.Handled = args.Handled; + }; + + + //element.TouchMove += touchHandler; + element.AddHandler(FrameworkElement.StylusMoveEvent, touchHandler); + } + + /// + /// Registers for mouse or stylus move. + /// + /// The element. + /// The handler. + public static void RegisterForMouseOrStylusMove(this FrameworkElement element, EventHandler handler) + { + RegisterForMouseOrStylusMove(element, null, handler); + } + #endregion #region Loaded -- cgit v1.3.1