From b0e5142cc37edfbb9c19f324f3461b893620f1df Mon Sep 17 00:00:00 2001 From: CHINBOY Date: Wed, 25 Jun 2025 08:53:38 +0800 Subject: [PATCH] Refactor DataGridMenuFilterFlyout Add OpenMotion and CloseMotion motion --- src/AtomUI.Base/MotionScene/AbstractMotion.cs | 1 + .../Column/Filters/DataGridMenuFilterFlyout.cs | 7 +++++++ .../Column/Filters/DataGridTreeFilterFlyout.cs | 5 ++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/AtomUI.Base/MotionScene/AbstractMotion.cs b/src/AtomUI.Base/MotionScene/AbstractMotion.cs index ed5f67a3c..2ce4cdfe8 100644 --- a/src/AtomUI.Base/MotionScene/AbstractMotion.cs +++ b/src/AtomUI.Base/MotionScene/AbstractMotion.cs @@ -131,6 +131,7 @@ public class AbstractMotion : IMotion protected virtual void ConfigureTransitions() { + Transitions.Clear(); var opacityTransition = new NotifiableDoubleTransition() { Duration = Duration, diff --git a/src/AtomUI.Controls.DataGrid/Column/Filters/DataGridMenuFilterFlyout.cs b/src/AtomUI.Controls.DataGrid/Column/Filters/DataGridMenuFilterFlyout.cs index f033090ce..a9a678b13 100644 --- a/src/AtomUI.Controls.DataGrid/Column/Filters/DataGridMenuFilterFlyout.cs +++ b/src/AtomUI.Controls.DataGrid/Column/Filters/DataGridMenuFilterFlyout.cs @@ -1,10 +1,17 @@ using AtomUI.Data; +using AtomUI.MotionScene; using Avalonia.Controls; namespace AtomUI.Controls; internal class DataGridMenuFilterFlyout : MenuFlyout { + public DataGridMenuFilterFlyout() + { + OpenMotion = new SlideUpInMotion(); + CloseMotion = new SlideUpOutMotion(); + } + protected override Control CreatePresenter() { var presenter = new DataGridMenuFilterFlyoutPresenter diff --git a/src/AtomUI.Controls.DataGrid/Column/Filters/DataGridTreeFilterFlyout.cs b/src/AtomUI.Controls.DataGrid/Column/Filters/DataGridTreeFilterFlyout.cs index be4f86cf0..30ba16d4d 100644 --- a/src/AtomUI.Controls.DataGrid/Column/Filters/DataGridTreeFilterFlyout.cs +++ b/src/AtomUI.Controls.DataGrid/Column/Filters/DataGridTreeFilterFlyout.cs @@ -1,4 +1,5 @@ using AtomUI.Data; +using AtomUI.MotionScene; using Avalonia.Controls; using Avalonia.Input; using Avalonia.Metadata; @@ -12,7 +13,9 @@ public class DataGridTreeFilterFlyout : Flyout public DataGridTreeFilterFlyout() { var itemCollectionType = typeof(ItemCollection); - Items = (ItemCollection)Activator.CreateInstance(itemCollectionType, true)!; + Items = (ItemCollection)Activator.CreateInstance(itemCollectionType, true)!; + OpenMotion = new SlideUpInMotion(); + CloseMotion = new SlideUpOutMotion(); } protected override Control CreatePresenter()