瀏覽代碼

close menu if the toplevel menu item is clicked and its already opened.

makes behavior consistent with wpf.
Dan Walmsley 6 年之前
父節點
當前提交
80cd6632bd
共有 1 個文件被更改,包括 12 次插入1 次删除
  1. 12 1
      src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs

+ 12 - 1
src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs

@@ -336,7 +336,18 @@ namespace Avalonia.Controls.Platform
 
             if (e.MouseButton == MouseButton.Left && item?.HasSubMenu == true)
             {
-                Open(item, false);
+                if (item.IsSubMenuOpen)
+                {
+                    if (item.Parent is Menu)
+                    {
+                        CloseMenu(item);
+                    }
+                }
+                else
+                {
+                    Open(item, false);
+                }
+
                 e.Handled = true;
             }
         }