Альтернатива UWP для свойства IsKeyboardFocusWithin в WPF - PullRequest
0 голосов
/ 31 января 2019

Есть ли альтернатива UWP для свойства WPF * IsKeyboardFocusWithin ?Если нет, то как бы вы узнали, находится ли фокус внутри себя?

Я бы предпочел не ходить по дереву визуалов вручную, проверяя каждый элемент на предмет фокусировки ...

1 Ответ

0 голосов
/ 31 января 2019

FocusManager.GetFocusedElement идентифицирует сфокусированный элемент.Затем вы можете пройти по дереву визуалов с помощью VisualTreeHelper.GetParent , чтобы увидеть, является ли он дочерним элементом элемента управления, который вас интересует. Прогулка будет намного легче, чем проверка всего дерева дочерним узлом-узел.

Что-то вроде:

    bool IsKeyboardFocusWithin(UIElement element)
    {
        UIElement focused = FocusManager.GetFocusedElement() as UIElement;

        while (focused != null)
        {
            if (focused == element)
            {
                return true;
            }
            focused = VisualTreeHelper.GetParent(focused) as UIElement;
        }
        return false;
    }
...