1
我在與打開一個彈出,像這樣的菜單功能區:微軟WPF絲帶彈出不垮
之前,我點擊,顯示像PIC的彈出按鈕,一些邏輯被觸發(無關)如何改變功能區中的活動選項卡。這可能偶爾會導致前一個選項卡中的彈出窗口仍然可見,但在其後面可以看到新的選項卡。當我mouseEnter彈出,我得到一個StackOverFlowException。
我在想「關閉」前面的標籤左右,有人知道我做錯了什麼嗎?
我在與打開一個彈出,像這樣的菜單功能區:微軟WPF絲帶彈出不垮
之前,我點擊,顯示像PIC的彈出按鈕,一些邏輯被觸發(無關)如何改變功能區中的活動選項卡。這可能偶爾會導致前一個選項卡中的彈出窗口仍然可見,但在其後面可以看到新的選項卡。當我mouseEnter彈出,我得到一個StackOverFlowException。
我在想「關閉」前面的標籤左右,有人知道我做錯了什麼嗎?
我添加了以下內容以實現我想要的效果:) 此解決方案是特定於實現的(即基於我對我們使用的功能區的實現情況的調查)。該實現需要一個不同的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 */ });
}
在我的代碼調用此方法之後,我稍微從我在IMPL碰到設置新的選項卡IsSelected = true;
此實現不同。因爲它有少許多餘的代碼。