Это будет работать так, как вы ожидаете, что сфокусированная область будет работать.

у странное поведение, когда дело доходит до фокуса и клавиатурной навигации. В приведенном ниже примере у меня есть простой ItemsControl, который был спроектирован так, чтобы он представлял список CheckBoxes, связанных с ItemsSource.

<ItemsControl FocusManager.IsFocusScope="True"
              ItemsSource="{Binding ElementName=TheWindow, Path=ListOStrings}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <CheckBox Content="{Binding}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

По какой-то странной причинеFocusManager.IsFocusScope = "True" назначение приводит к тому, что фокус клавиатуры не устанавливается при установке флажка с помощью щелчка мыши, и фокус выпрыгивает из ItemsControl, когда флажок установлен с помощью пробела на клавиатуре. Кажется, что оба симптома указывают на некоторую странную навигацию, когда флажок установлен, но мне трудно разобраться в этом.

Эта проблема возникает, если я устанавливаю какой-либо родительский элемент визуального дерева в качестве области фокусировки, используя этот метод. Если я удалюFocusManager.IsFocusScope = "True" тогда проблемы уходят. К сожалению, я вижу эту проблему в большом проекте, где я не могу просто удалить эти области фокусировки, не беспокоясь о других последствиях, связанных с фокусом.

Может ли кто-нибудь объяснить мне странное поведение, которое я вижу? Это ошибка или я просто что-то упустил?

Ответы на вопрос(1)

Ваш ответ на вопрос