WPF Microsoft 功能区弹出窗口不会折叠

WPF Microsoft Ribbon popup doesn't collapse

我有一个带有打开弹出窗口的菜单的功能区,如下所示:

在我单击显示如图所示弹出窗口的按钮之前,触发了一些逻辑(与如何无关)以更改功能区中的活动选项卡。这有时会导致上一个选项卡的弹出窗口仍然可见但新选项卡后面可见的情况。当我用鼠标输入弹出窗口时,出现 WhosebugException。

我在想 "deactivating" 上一个选项卡左右,有人知道我做错了什么吗?

我添加了以下内容来实现我想要的:) 此解决方案是特定于实现的(即基于我对我们使用的功能区实现的调查)。该实现需要一个不同的 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; 此实现与我在实现中遇到的略有不同。因为它几乎没有多余的代码。