From f45aa5471cd327145f04cc42494354cced89123f Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Wed, 22 Jul 2020 22:45:00 +0800 Subject: [PATCH] minor fix --- .../Controls/Transfer/TransferGroup.cs | 37 ++++++++++++------- .../Tools/GifImageAnimator.cs | 1 + 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/Shared/HandyControl_Shared/Controls/Transfer/TransferGroup.cs b/src/Shared/HandyControl_Shared/Controls/Transfer/TransferGroup.cs index cc6a2478..4455d7d6 100644 --- a/src/Shared/HandyControl_Shared/Controls/Transfer/TransferGroup.cs +++ b/src/Shared/HandyControl_Shared/Controls/Transfer/TransferGroup.cs @@ -34,20 +34,31 @@ namespace HandyControl.Controls protected override void OnItemsChanged(object sender, NotifyCollectionChangedEventArgs e) { if (ItemsHost == null) return; - if (e.OldItems != null) + + switch (e.Action) { - foreach (FrameworkElement item in e.OldItems) - { - ItemsHost.Children.Remove(item); - } - } - if (e.NewItems != null) - { - if (e.NewItems[0] is FrameworkElement item) - { - item.Style = ItemContainerStyle; - ItemsHost.Children.Insert(e.NewStartingIndex, item); - } + case NotifyCollectionChangedAction.Add: + if (e.NewItems != null) + { + if (e.NewItems[0] is FrameworkElement item) + { + item.Style = ItemContainerStyle; + ItemsHost.Children.Insert(e.NewStartingIndex, item); + } + } + break; + case NotifyCollectionChangedAction.Remove: + if (e.OldItems != null) + { + foreach (FrameworkElement item in e.OldItems) + { + ItemsHost.Children.Remove(item); + } + } + break; + case NotifyCollectionChangedAction.Reset: + ItemsHost.Children.Clear(); + break; } } } diff --git a/src/Shared/HandyControl_Shared/Tools/GifImageAnimator.cs b/src/Shared/HandyControl_Shared/Tools/GifImageAnimator.cs index 9f3a6671..f79c86aa 100644 --- a/src/Shared/HandyControl_Shared/Tools/GifImageAnimator.cs +++ b/src/Shared/HandyControl_Shared/Tools/GifImageAnimator.cs @@ -175,6 +175,7 @@ namespace HandyControl.Tools if (!ImageInfoList.Any()) { + AnimationThread?.Abort(); AnimationThread = null; } }