Wpf, AvalonEdit и проблема с клавиатурной навигацией - PullRequest
1 голос
/ 04 марта 2020

У меня есть AvalonEdit в моем окне. Когда я нажимаю комбинацию клавиш Ctrl + Up или Ctrl + Down в редакторе, AvalonEdit теряет фокус, который передается другому элементу управления, как показано ниже:

AvalonEdit lost focus

Это иногда случается и при использовании комбинаций Ctrl + Left или Ctrl + Right.

Мое текущее определение XAML выглядит следующим образом:

<ae:TextEditor x:Name="teEditor"
            Grid.Row="0"
            Grid.Column="0"
            VerticalAlignment="Stretch"
            HorizontalAlignment="Stretch"
            BorderThickness="0"
            FontFamily="Consolas"      
            FontSize="10pt"
            TabIndex="0"             
            WordWrap="{Binding ElementName=Root, Path=Handler.WordWrap}"
            ShowLineNumbers="{Binding ElementName=Root, Path=Handler.LineNumbers}"
            ContextMenu="{StaticResource EditorContextMenu}"
            GotFocus="HandleEditorGotFocus" 
            KeyboardNavigation.ControlTabNavigation="None"
            KeyboardNavigation.AcceptsReturn="True"
            KeyboardNavigation.DirectionalNavigation="None"
            KeyboardNavigation.TabNavigation="None"/>

Как я могу предотвратить это?

1 Ответ

1 голос
/ 05 марта 2020

Оказывается, эта проблема возникает, когда вы помещаете AvalonEdit в TabControl. В этом случае вам необходимо отключить навигацию с помощью клавиатуры в TabControl, добавив:

KeyboardNavigation.TabNavigation="Local" KeyboardNavigation.DirectionalNavigation="Contained"
...