aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Core/ExtensionMethods
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Tango.Core/ExtensionMethods')
-rw-r--r--Software/Visual_Studio/Tango.Core/ExtensionMethods/FrameworkElementExtensions.cs64
1 files changed, 64 insertions, 0 deletions
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);
}
+ /// <summary>
+ /// Registers for mouse or stylus move.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <param name="relativeTo">The relative to.</param>
+ /// <param name="handler">The handler.</param>
+ public static void RegisterForMouseOrStylusMove(this FrameworkElement element, FrameworkElement relativeTo, EventHandler<MouseOrTouchEventArgs> 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);
+ }
+
+ /// <summary>
+ /// Registers for mouse or stylus move.
+ /// </summary>
+ /// <param name="element">The element.</param>
+ /// <param name="handler">The handler.</param>
+ public static void RegisterForMouseOrStylusMove(this FrameworkElement element, EventHandler<MouseOrTouchEventArgs> handler)
+ {
+ RegisterForMouseOrStylusMove(element, null, handler);
+ }
+
#endregion
#region Loaded