1

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

在此处输入图像描述

在我单击显示像图片一样的弹出窗口的按钮之前,会触发一些逻辑(与如何更改无关)来更改功能区中的活动选项卡。这有时会导致上一个选项卡的弹出窗口仍然可见,但在其后面可见一个新选项卡。当我 mouseEnter 弹出窗口时,我得到一个 StackOverFlowException。

我正在考虑“停用”前一个标签左右,有人知道我做错了什么吗?

4

1 回答 1

0

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

于 2015-09-02T13:41:26.687 回答