【问题标题】:WPF Microsoft Ribbon popup doesn't collapseWPF Microsoft 功能区弹出窗口不会折叠
【发布时间】:2015-09-01 15:53:01
【问题描述】:
我有一个带有打开弹出窗口的菜单的功能区,如下所示:
在单击显示像图片一样的弹出窗口的按钮之前,会触发一些逻辑(与如何更改无关)来更改功能区中的活动选项卡。这有时会导致上一个选项卡中的弹出窗口仍然可见,但在其后面可以看到一个新选项卡。当我 mouseEnter 弹出窗口时,我得到一个 StackOverFlowException。
我正在考虑“停用”前一个标签左右,有人知道我做错了什么吗?
【问题讨论】:
标签:
wpf
popupwindow
windows-ribbon-framework
【解决方案1】:
我添加了以下内容来实现我想要的:)
此解决方案是特定于实现的(即基于我对我们使用的功能区的实现的调查)。该实现需要一个不同的 originalSource,我通过将 Source 设置为 RibbonWindow 实例来实现。
private void DismissRibbonPopup()
{
// Hack inspired by RibbonHelper; try to close any open RibbonPopups (implicit "from the current ActiveTab").
UIElement source = Mouse.Captured as UIElement;
if (source != null)
source.RaiseEvent(new RibbonDismissPopupEventArgs() { Source = /** I put the RibbonWindow instance here */ });
}
在我的代码中,我调用了这个方法,然后我将新标签设置为IsSelected = true;
这个实现与我在 impl 中遇到的略有不同。因为它几乎没有多余的代码。