Esempio n. 1
0
 private static void OnKeyboardInputProviderAcquireFocus(object sender,
                                                         KeyboardInputProviderAcquireFocusEventArgs e)
 {
     if (!IsCurrentThreadMainUiThread())
     {
         return;
     }
     if (!(sender is DependencyObject dependencyObject) || !IsRegisteredCommandFocusElement(dependencyObject))
     {
         return;
     }
     if (dependencyObject is IInputElement inputElement && !inputElement.IsKeyboardFocusWithin)
     {
         if (e.RoutedEvent == Keyboard.PreviewKeyboardInputProviderAcquireFocusEvent)
         {
             if (!IsAttachedCommandFocusElement(dependencyObject))
             {
                 CurrentMenuModeSource = PresentationSource.FromDependencyObject(dependencyObject);
             }
         }
         else if (!e.FocusAcquired)
         {
             CurrentMenuModeSource = null;
         }
     }
     if (PresentationSource.FromDependencyObject(dependencyObject) != null)
     {
         return;
     }
     e.Handled = true;
 }
        // Token: 0x06005E76 RID: 24182 RVA: 0x001A7864 File Offset: 0x001A5A64
        private static void OnKeyboardInputProviderAcquireFocus(object sender, KeyboardInputProviderAcquireFocusEventArgs e)
        {
            MenuBase menuBase = (MenuBase)sender;

            if (!menuBase.IsKeyboardFocusWithin && !e.FocusAcquired && menuBase.IsAcquireFocusMenuMode)
            {
                menuBase.PopMenuMode();
            }
        }
Esempio n. 3
0
        // This method ensures that whenever focus is not acquired
        // but MenuMode has been pushed with the expection, a
        // corresponding PopMenu is performed.
        private static void OnKeyboardInputProviderAcquireFocus(object sender, KeyboardInputProviderAcquireFocusEventArgs e)
        {
            MenuBase menu = (MenuBase)sender;

            if (!menu.IsKeyboardFocusWithin && !e.FocusAcquired && menu.IsAcquireFocusMenuMode)
            {
                Debug.Assert(menu.HasPushedMenuMode);
                // The input provider did not acquire focus.  So we will not
                // succeed in setting focus to the desired element within the
                // menu.
                menu.PopMenuMode();
            }
        }
Esempio n. 4
0
        // This method ensures that whenever focus is given to an element
        // within a menu, that the menu enters menu mode.  This can't be
        // done with a simple IsFocusWithin changed handler because we
        // need to actually enter menu mode before focus changes.
        private static void OnPreviewKeyboardInputProviderAcquireFocus(object sender, KeyboardInputProviderAcquireFocusEventArgs e)
        {
            MenuBase menu = (MenuBase)sender;

            // If we haven't already pushed menu mode, we need to do it before
            // focus enters the menu for the first time
            if (!menu.IsKeyboardFocusWithin && !menu.HasPushedMenuMode)
            {
                // Call PushMenuMode just before focus enters the menu...
                menu.PushMenuMode(/*isAcquireFocusMenuMode*/ true);
            }
        }
Esempio n. 5
0
 private void Button_KeyboardInputProviderAcquireFocus(object sender, KeyboardInputProviderAcquireFocusEventArgs e)
 {
 }
        // Token: 0x06005E75 RID: 24181 RVA: 0x001A7838 File Offset: 0x001A5A38
        private static void OnPreviewKeyboardInputProviderAcquireFocus(object sender, KeyboardInputProviderAcquireFocusEventArgs e)
        {
            MenuBase menuBase = (MenuBase)sender;

            if (!menuBase.IsKeyboardFocusWithin && !menuBase.HasPushedMenuMode)
            {
                menuBase.PushMenuMode(true);
            }
        }