我正在创建UserControl
,它由TextBox
和ListView
组成。只要控件具有键盘焦点(ListView
中的选择更改不应从TextBox
中删除键盘焦点),我希望键盘焦点与TextBox
保持一致。WPF维护键盘焦点
我试着追赶的ListView
GotKeyboardFocus
并通过键盘焦点回到使用Keyboard.Focus(),
的TextBox
但这似乎取消在ListView
任何选择操作。下面的代码显示了这个问题。有谁知道如何实现这个功能?
<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);
}
}
}
我试过了。在这种情况下,您可以从ListView中选择,但焦点从键盘上移除。 – 2009-02-05 20:14:24