Вот техника, которую я использую довольно часто. Он основывается на приведенном выше примере добавления атрибута FocusedElement
к вашим Window
или UserControl
.
Мое дело в том, что я не хочу, чтобы ЛЮБЫЕ элементы управления в моем окне имели фокус. Решение для меня - создать фиктивный элемент управления, который не имеет пользовательского интерфейса и назначает фокус на это. Просто так получилось, что Control
соответствует счету отлично:
<UserControl
x:Class="MyControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
FocusManager.FocusedElement="{Binding ElementName=focus_thief}"
mc:Ignorable="d">
<Grid>
<!-- no renderable UI -->
<Control Name="focus_thief"/>
<!-- wants focus, but won't get it -->
<ListBox>
<ListBoxItem>First Item</ListBoxItem>
</ListBox>
</Grid>
</UserControl>
я думаю, что у означает, что, когда и переместить фокус ListBox, первый элемент всегда выбран? (подчеркнуто .. и если вы нажимаете вниз, второй элемент получает фокус?) –
1) для того, кто поставил мой вопрос как дубликат, вы не поняли вопрос, я тот, кто разместил дубликат. 2) @Madi. Когда отображается список, его первый элемент выбирается автоматически, я хочу отключить эту функцию. – Shimmy
hmm .. вы можете использовать FocusManager для фокусировки на определенный элемент/элемент .. (все в xaml) ...однако я не могу понять, как заставить его сосредоточиться ни на что: D –