Je crée un UserControl
consistant en un TextBox
et un ListView
. Je souhaite que le focus du clavier reste sur le TextBox
tant que le contrôle a le focus sur le clavier (les changements de sélection dans le ListView
ne doivent pas supprimer le focus du clavier du TextBox
).WPF Maintenir le focus du clavier
J'ai essayé attraper GotKeyboardFocus
dans le ListView
et le clavier qui passe le focus à l'aide de TextBox
Keyboard.Focus(),
mais cela semble annuler toute opération de sélection dans le ListView
. Le code ci-dessous montre le problème. Est-ce que quelqu'un sait comment réaliser cette fonctionnalité?
<Window x:Class="WpfApplication5.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<StackPanel>
<TextBox x:Name="TextBox1" />
<ListView x:Name="ListBox1" Keyboard.GotKeyboardFocus="ListBox1_GotKeyboardFocus">
<ListViewItem Content="Able" />
<ListViewItem Content="Baker" />
<ListViewItem Content="Charlie" />
</ListView>
</StackPanel>
</Window>
using System.Windows;
using System.Windows.Input;
namespace WpfApplication5
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void ListBox1_GotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
Keyboard.Focus(TextBox1);
}
}
}
J'ai essayé ça. Dans ce cas, vous pouvez sélectionner dans le ListView, mais le focus est supprimé du clavier. –