WPF等同于LVS_EX_ONECLICKACTIVATE?

WPF等同于LVS_EX_ONECLICKACTIVATE?,wpf,listbox,Wpf,Listbox,我有一个WPF应用程序,其中有一个ListBox。对于这个列表框,我想模仿用户控制面板的行为(从Windows Vista开始)——即:单击列表项,与双击相同 在Win32中,我会通过打开LVS_EX_ONECLICKACTIVATE样式来实现这一点 在WPF中,我试图通过处理MouseLeftButtonUp事件来实现这一点。不幸的是,这很奇怪,它有时会拾取错误的项目 例如,如果双击标题栏(标题)以使窗口最大化,则第二次鼠标悬停在列表框上,并引发事件。类似地,如果某个项目部分显示在视图中,单击

我有一个WPF应用程序,其中有一个
ListBox
。对于这个列表框,我想模仿用户控制面板的行为(从Windows Vista开始)——即:单击列表项,与双击相同

在Win32中,我会通过打开LVS_EX_ONECLICKACTIVATE样式来实现这一点

在WPF中,我试图通过处理
MouseLeftButtonUp
事件来实现这一点。不幸的是,这很奇怪,它有时会拾取错误的项目

例如,如果双击标题栏(标题)以使窗口最大化,则第二次鼠标悬停在列表框上,并引发事件。类似地,如果某个项目部分显示在视图中,单击该项目会将其滚动到视图中,但会将鼠标向上移动到当前显示的项目上,而不是单击的项目

现在,再一次,如果这是Win32(在LVS_EX_ONECLICKACTIVATE之前),我会在鼠标下方获取鼠标捕获,记住项目,并检查鼠标上方是否有捕获


但这不是Win32,而是WPF。如何在WPF列表框中进行单击激活?

我必须承认,我现在从未偶然发现LVS_EX__ONECLICKACTIVATE,但据我所知,处理“SelectionChanged”应该可以做到这一点


或者双击选择或激活选择之间有区别吗?

这可能会起作用,但我还想知道是否有一种方法可以让您在Win32中通过单击激活获得键盘可访问性。啊,好的,当箭头键用于导航时,“SelectionChanged”事件可能也会触发,这当然是不能接受的。