WPF, сфокусируйтесь на содержимом TabControl - PullRequest
0 голосов
/ 05 марта 2020

Я бы хотел установить фокус на текущий выбранный TabItem контент *1002*.

Я связываю предметы через ItemsSource, поэтому у меня нет простого доступа к самим TabItem;

Я также не могу вызвать Focus() на TabControl, потому что он фокусирует сам TabControl вместо его содержимого (для этого я сделал грубую, но эффективную проверку - сделал DispatcherTimer, который излучал ток выделенный элемент раз в секунду).

По сути, я хочу добиться того же эффекта, что и нажатие на заголовок выбранной вкладки. Как я могу это сделать (не делая это быстро и грязно, имитируя щелчок, конечно)?

1 Ответ

0 голосов
/ 05 марта 2020

Вы можете расширить TabControl и переопределить метод OnSelectionChanged.

protected override void OnSelectionChanged(SelectionChangedEventArgs e)
{
    //TODO: Ignore this event on load.

    if (e.AddedItems.Count > 0)
        ((e.AddedItems[0] as TabItem)?.Content as UIElement)?.Focus();

    base.OnSelectionChanged(e);
}
...