예제 #1
0
        private static void OnLostMouseCapture(object sender, MouseEventArgs e)
        {
            GroupNavigationControl groupNavigationControl = ( GroupNavigationControl )sender;

            DependencyObject originalSource = e.OriginalSource as DependencyObject;

            if (Mouse.Captured != groupNavigationControl)
            {
                if (e.OriginalSource == groupNavigationControl)
                {
                    if ((Mouse.Captured == null) &&
                        (Nequeo.Wpf.Wpf.TreeHelper.IsDescendantOf(originalSource, groupNavigationControl)))
                    {
                        groupNavigationControl.Close();
                    }
                }
                else if ((originalSource != null) && (Nequeo.Wpf.Wpf.TreeHelper.IsDescendantOf(originalSource, groupNavigationControl)))
                {
                    if ((groupNavigationControl.IsDropDownOpen) && (Mouse.Captured == null))
                    {
                        Mouse.Capture(groupNavigationControl, CaptureMode.SubTree);
                        e.Handled = true;
                    }
                }
                else
                {
                    groupNavigationControl.Close();
                }
            }
        }
예제 #2
0
        private static void OnPreviewMouseButtonDown(object sender, MouseButtonEventArgs e)
        {
            GroupNavigationControl groupNavigationControl = ( GroupNavigationControl )sender;
            Visual originalSource = e.OriginalSource as Visual;

            if ((originalSource != null) &&
                (groupNavigationControl.PartButton != null) &&
                (groupNavigationControl.PartButton.IsAncestorOf(originalSource)))
            {
                if (groupNavigationControl.IsDropDownOpen)
                {
                    groupNavigationControl.Close();
                }
            }
        }
예제 #3
0
        private static void OnMouseButtonDown(object sender, MouseButtonEventArgs e)
        {
            GroupNavigationControl groupNavigationControl = ( GroupNavigationControl )sender;

            if (!groupNavigationControl.IsKeyboardFocusWithin)
            {
                groupNavigationControl.Focus();
            }

            e.Handled = true;

            if ((Mouse.Captured == groupNavigationControl) && (e.OriginalSource == groupNavigationControl))
            {
                groupNavigationControl.Close();
            }
        }