Как решить проблему, когда WPF UserControl не освобождает фокус? - PullRequest
0 голосов
/ 19 октября 2011

У меня есть пользовательский элемент управления WPF, XAML которого приведен здесь.

<UserControl x:Class="Trial.WpfControls.OrganisationPicker"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">   
        <Grid Height="25" Width="200">        
        <DockPanel HorizontalAlignment="Stretch" Name="dockPanel1" VerticalAlignment="Stretch">
            <TextBox Name="txtOrgId" TabIndex="101" Width="168" Height="Auto" Keyboard.PreviewKeyDown="txtOrgId_PreviewKeyDown" LostFocus="txtOrgId_LostFocus" />
            <Button Content="Search" TabIndex="102" Name="btnOrgSearchSelector" Width="32" Height="Auto" DockPanel.Dock="Right"  Click="btnOrgSearchSelector_Click" Keyboard.PreviewKeyDown="btnOrgSearchSelector_PreviewKeyDown" />            
        </DockPanel>
    </Grid>
</UserControl>

Когда я помещаю его в какое-то другое окно WPF и вкладываю его в этот элемент управления во время вкладки окна, каким-то образом этот элемент управления не теряет фокус.Фокус приходит на кнопку «Поиск» и остается только там.

Как решить эту проблему?Почему он не снимает фокус?

ОБНОВЛЕНИЕ:

Когда я добавляю KeyboardNavigation.TabNavigation="Once" к элементу UserControl, фокус выходит из-под контроля.НО, когда я нажимаю клавишу TAB из текстового поля, оно сразу гаснет вместо установки фокуса на кнопку поиска.Так что это, конечно, не ожидаемое поведение для меня.

...