Wpf 如何在StaysOpen为False的弹出窗口中单击控件
我有一个弹出窗口,里面有一个列表视图。我想将StaysOpen设置为False,这样当我点击离开弹出窗口时,它就会正确关闭。但是,这意味着所有鼠标事件都被截获。因此,我的ListView中没有任何鼠标事件 这是我目前的设置。我已经删除了所有的样式,使它更容易看到发生了什么Wpf 如何在StaysOpen为False的弹出窗口中单击控件,wpf,Wpf,我有一个弹出窗口,里面有一个列表视图。我想将StaysOpen设置为False,这样当我点击离开弹出窗口时,它就会正确关闭。但是,这意味着所有鼠标事件都被截获。因此,我的ListView中没有任何鼠标事件 这是我目前的设置。我已经删除了所有的样式,使它更容易看到发生了什么 <Popup Name="puSearchResults" StaysOpen="False" AllowsTransparency="True" LostFocus="
<Popup Name="puSearchResults" StaysOpen="False"
AllowsTransparency="True"
LostFocus="puSearchResults_LostFocus"
LostKeyboardFocus="puSearchResults_LostKeyboardFocus"
LostMouseCapture="puSearchResults_LostMouseCapture" >
<ListView Name="lvSearchResults"
MouseLeftButtonDown="lbSearchResults_MouseLeftButtonDown"
SelectionChanged="lvSearchResults_SelectionChanged"/>
</Popup>
在这种情况下,MouseLeftButtonDown仅在我将StaysOpen设置为True时才起作用,但如果我单击“离开”,弹出窗口不会消失
想法?我会将鼠标事件添加到ListView或ListView数据模板中的对象 然后你可以这样做:
private void lvSearchResults_MouseEnter(object sender, MouseEventArgs e)
{
puSearchResults.StaysOpen = true;
}
private void lvSearchResults_MouseLeave(object sender, MouseEventArgs e)
{
puSearchResults.StaysOpen = false;
}
编辑
类似的问题应该会有所帮助:当我将StaysOpen设置为true时,它会自动将IsOpen设置为false,因此我必须将其设置为true才能看到弹出窗口。因此,您可以看到弹出窗口闪烁。此外,当您在ListView上悬停时,弹出窗口认为您不再在弹出窗口内。