|
|
@ -61,10 +61,7 @@ |
|
|
/// </summary>
|
|
|
/// </summary>
|
|
|
public void Hide() |
|
|
public void Hide() |
|
|
{ |
|
|
{ |
|
|
foreach (MenuItem i in this.GetLogicalChildren()) |
|
|
|
|
|
{ |
|
|
|
|
|
i.IsSubMenuOpen = false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (_popup != null && _popup.IsVisible) |
|
|
if (_popup != null && _popup.IsVisible) |
|
|
{ |
|
|
{ |
|
|
@ -91,6 +88,8 @@ |
|
|
PlacementTarget = control, |
|
|
PlacementTarget = control, |
|
|
StaysOpen = false |
|
|
StaysOpen = false |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
_popup.Closed += PopupClosed; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
((ISetLogicalParent)_popup).SetParent(control); |
|
|
((ISetLogicalParent)_popup).SetParent(control); |
|
|
@ -102,6 +101,20 @@ |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private static void PopupClosed(object sender, EventArgs e) |
|
|
|
|
|
{ |
|
|
|
|
|
var contextMenu = (sender as Popup)?.Child as ContextMenu; |
|
|
|
|
|
|
|
|
|
|
|
if (contextMenu != null) |
|
|
|
|
|
{ |
|
|
|
|
|
foreach (MenuItem i in contextMenu.GetLogicalChildren()) |
|
|
|
|
|
{ |
|
|
|
|
|
i.IsSubMenuOpen = false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
contextMenu._isOpen = false; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
private void PopupOpened(object sender, EventArgs e) |
|
|
private void PopupOpened(object sender, EventArgs e) |
|
|
{ |
|
|
{ |
|
|
|