WPF - 将键盘焦点设置为 ListView 项,就像 Tab 一样
WPF - Set Keyboard Focus to ListView Item like Tab does
我的 WPF 窗体中有一个 Listview 以及其他控件。当我在控件之间切换并且 ListView 获得焦点时,ListView 项目自动获得焦点,而不是 ListView 本身,这允许使用键盘在项目之间移动。
当用户单击 ListView 中的空白区域时,我想要相同的行为。所以我为ListView创建了一个Click事件,但是不知道要执行哪段代码。我试过了;
ListView.Focus();
Keyboard.Focus(ListView);
但是 ListView 本身总是被聚焦,我想这是有道理的。将 ListView 设置为 focusable = false 会完全禁用聚焦,包括项目和使用 tab 键聚焦也不再起作用。
如何在我的 OnClick 事件中重新创建 Tab 焦点行为?
您可以尝试关注 ListView
中的第一项:
ListView.SelectedIndex = 0;
ListViewItem lvi = ListView.ItemContainerGenerator.ContainerFromIndex(0) as ListViewItem;
if (lvi != null)
lvi.Focus();
我的 WPF 窗体中有一个 Listview 以及其他控件。当我在控件之间切换并且 ListView 获得焦点时,ListView 项目自动获得焦点,而不是 ListView 本身,这允许使用键盘在项目之间移动。
当用户单击 ListView 中的空白区域时,我想要相同的行为。所以我为ListView创建了一个Click事件,但是不知道要执行哪段代码。我试过了;
ListView.Focus();
Keyboard.Focus(ListView);
但是 ListView 本身总是被聚焦,我想这是有道理的。将 ListView 设置为 focusable = false 会完全禁用聚焦,包括项目和使用 tab 键聚焦也不再起作用。
如何在我的 OnClick 事件中重新创建 Tab 焦点行为?
您可以尝试关注 ListView
中的第一项:
ListView.SelectedIndex = 0;
ListViewItem lvi = ListView.ItemContainerGenerator.ContainerFromIndex(0) as ListViewItem;
if (lvi != null)
lvi.Focus();