Exemplo n.º 1
0
        private bool IsInsideClick(UIElement uie, MouseButtonEventArgsInt e)
        {
            var isMouseEventSourceHitTestVisible = Popup.IsMouseEventSourceHitTestVisible(uie);
            var queryIsInsideClickEventArgs      = new QueryCloseOnClickEventArgs(_popup, e.OriginalSource);

            QueryCloseOnClick?.Invoke(this, queryIsInsideClickEventArgs);

            if (isMouseEventSourceHitTestVisible == false)
            {
                return(false);
            }

            if (queryIsInsideClickEventArgs.CanClose == false)
            {
                return(true);
            }

            if (ReferenceEquals(uie, _popup.Panel))
            {
                return(false);
            }

            var screenPosition           = e.ScreenPosition;
            var isMouseInsideEventHelper = MouseInternal.IsMouseInsideEventHelper(_popup.TreeMode == PopupTreeMode.Visual ? (UIElement)_popup : _popup.Panel, uie, screenPosition);

            return(isMouseInsideEventHelper);
        }
Exemplo n.º 2
0
        private void OnGlobalMouseRightButtonUp(object sender, MouseButtonEventArgsInt e)
        {
            if (_rightButtonDownInfo.IsEmpty == false)
            {
                QueryCloseOnUp(_rightButtonDownInfo, GetMouseDownInfo(e), e);
            }

            _rightButtonDownInfo = MouseButtonEventInfo.Empty;
        }
Exemplo n.º 3
0
        private void QueryCloseOnDown(MouseButtonEventArgsInt e)
        {
            var uieSource = PresentationTreeUtils.GetUIElementEventSource(e.OriginalSource);
            var inside    = IsInsideClick(uieSource, e);

            if (inside)
            {
                return;
            }

            QueryCloseCore(new MouseButtonEventPopupCloseReason(e.OriginalArgs));
        }
Exemplo n.º 4
0
        private static void InstanceOnMouseRightButtonDown(object sender, MouseButtonEventArgsInt e)
        {
#if SILVERLIGHT
            if (e.Handled || MouseService.Instance.RightButtonState == MouseButtonState.Released)
            {
                return;
            }

            FrameworkElement contextControlOwner;
            e.Handled = GetController(e, out contextControlOwner) != null;
#endif
        }
Exemplo n.º 5
0
        private static void InstanceOnMouseRightButtonUp(object sender, MouseButtonEventArgsInt e)
        {
            if (e.Handled || MouseService.Instance.RightButtonState == MouseButtonState.Pressed)
            {
                return;
            }

            var controller = GetController(e, out var contextControlOwner);

            //e.Handled = controller?.OpenContextControl(contextControlOwner, e.OriginalSource as DependencyObject) ?? false;

            controller?.OpenContextControl(contextControlOwner, e.OriginalSource as DependencyObject);
        }
Exemplo n.º 6
0
        private void QueryCloseOnUp(MouseButtonEventInfo downButtonEventInfo, MouseButtonEventInfo upEventInfo, MouseButtonEventArgsInt e)
        {
            var inside = upEventInfo.IsInside;

            if (inside == false)
            {
                if (downButtonEventInfo.IsInside == false)
                {
                    QueryCloseCore(new MouseButtonEventPopupCloseReason(e.OriginalArgs));
                }
            }
        }
Exemplo n.º 7
0
 private void OnGlobalPreviewMouseRightButtonUp(object sender, MouseButtonEventArgsInt e)
 {
 }
Exemplo n.º 8
0
        private void OnGlobalPreviewMouseRightButtonDown(object sender, MouseButtonEventArgsInt e)
        {
            _rightButtonDownInfo = GetMouseDownInfo(e);

            QueryCloseOnDown(e);
        }
Exemplo n.º 9
0
        private void OnGlobalMouseLeftButtonDown(object sender, MouseButtonEventArgsInt e)
        {
            _leftButtonDownInfo = GetMouseDownInfo(e);

            QueryCloseOnDown(e);
        }
Exemplo n.º 10
0
        private MouseButtonEventInfo GetMouseDownInfo(MouseButtonEventArgsInt e)
        {
            var uie = PresentationTreeUtils.GetUIElementEventSource(e.OriginalSource);

            return(new MouseButtonEventInfo(uie, IsInsideClick(uie, e)));
        }