diff --git a/src/AtomUI.Controls/Flyouts/MenuFlyout.cs b/src/AtomUI.Controls/Flyouts/MenuFlyout.cs index baa5fa39d..dff8cbc8b 100644 --- a/src/AtomUI.Controls/Flyouts/MenuFlyout.cs +++ b/src/AtomUI.Controls/Flyouts/MenuFlyout.cs @@ -1,4 +1,5 @@ using System.Collections; +using System.Collections.Specialized; using System.ComponentModel; using System.Reactive.Disposables; using AtomUI.Controls.Utils; @@ -63,18 +64,12 @@ public class MenuFlyout : Flyout Presenter = new MenuFlyoutPresenter { - ItemsSource = Items, MenuFlyout = this }; - // 会二次创建 foreach (var item in Items) { - if (item is Control control) - { - control.SetLogicalParent(null); - control.SetVisualParent(null); - } + Presenter.Items.Add(item); } _presenterBindingDisposables.Add(BindUtils.RelayBind(this, ItemTemplateProperty, Presenter, MenuFlyoutPresenter.ItemTemplateProperty)); diff --git a/src/AtomUI.Controls/Flyouts/MenuFlyoutPresenter.cs b/src/AtomUI.Controls/Flyouts/MenuFlyoutPresenter.cs index 4533ba29b..6e123dcaf 100644 --- a/src/AtomUI.Controls/Flyouts/MenuFlyoutPresenter.cs +++ b/src/AtomUI.Controls/Flyouts/MenuFlyoutPresenter.cs @@ -11,6 +11,7 @@ using Avalonia.Controls.Platform; using Avalonia.Controls.Primitives; using Avalonia.Interactivity; using Avalonia.Media; +using Avalonia.VisualTree; namespace AtomUI.Controls;