【发布时间】:2017-12-28 15:58:50
【问题描述】:
我有一个在情节提要完成后出现的弹出控件。此弹出窗口附加到堆栈面板并位于底部。
我已经实现了一个双击堆栈面板的功能:当用户用鼠标左键双击它时,堆栈面板会滑动并消失。
private void pnlTopMenu_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
对于弹出窗口,我设置了 StaysOpen="False",因此当用户点击弹出窗口外窗口的任何位置时,弹出窗口将自动隐藏。这是当 StaysOpen 属性设置为 false 时弹出的默认行为。
我的问题是弹出行为(点击时隐藏)与堆栈面板的 MouseLeftButtonDown 事件冲突。
在 MouseLeftButtonDown 中,我检查 e.ClickCount >= 2。如果是,我滑动堆栈面板并将其隐藏。当用户单击按钮时会显示堆栈面板:故事板开始并显示它,故事板完成后,还会显示堆栈面板的弹出窗口。
所以它发生了以下情况。
- 用户单击一个按钮,故事板开始并显示堆栈面板,当故事板完成时,它显示附加到堆栈面板底部的堆栈面板的弹出窗口。
- 此时显示堆栈面板和弹出窗口。现在,如果用户双击隐藏堆栈面板,当 pnlTopMenu_MouseLeftButtonDown 被触发时, e.ClickCount >= 2 不满足,所以面板没有被隐藏,因为弹出窗口已经消耗了 1 次点击来隐藏自己......所以这对我来说是个问题双击时stackpanel没有被隐藏,那么我该如何解决这个问题?有什么方法可以在不消耗鼠标点击的情况下关闭弹出窗口?
【问题讨论】:
标签: c# wpf xaml popup .net-3.5