我的Popup
里面有ListView
。我想将StaysOpen
设置为False,以便在我点击弹出窗口时正确关闭它。但是,这意味着所有鼠标事件都被截获。因此,我的ListView中没有任何鼠标事件。
这是我目前的设置。我已删除所有样式,以便更容易查看正在进行的操作。
<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时有效,但如果我点击则Popup
不会消失。
想法?
答案 0 :(得分:-1)
我会将鼠标事件添加到ListView或ListView的数据模板中的对象。
然后你可以这样做:
private void lvSearchResults_MouseEnter(object sender, MouseEventArgs e)
{
puSearchResults.StaysOpen = true;
}
private void lvSearchResults_MouseLeave(object sender, MouseEventArgs e)
{
puSearchResults.StaysOpen = false;
}
修改强>
应该有所帮助的类似问题:Close Wpf Popup On click of item of its own control template