diff --git a/src/UI/WPF/ViewModels/AnimationControlViewModel.cs b/src/UI/WPF/ViewModels/AnimationControlViewModel.cs index 0cfeb6f..fc8944f 100644 --- a/src/UI/WPF/ViewModels/AnimationControlViewModel.cs +++ b/src/UI/WPF/ViewModels/AnimationControlViewModel.cs @@ -1341,32 +1341,34 @@ namespace NavisworksTransport.UI.WPF.ViewModels /// /// 处理动画状态变化事件 /// - private void OnAnimationStateChanged(object sender, NavisworksTransport.Core.Animation.AnimationState state) + private void OnAnimationStateChanged(object sender, Core.Animation.AnimationState state) { System.Windows.Application.Current.Dispatcher.BeginInvoke(new Action(() => { switch (state) { - case NavisworksTransport.Core.Animation.AnimationState.Playing: + case Core.Animation.AnimationState.Playing: CanStartAnimation = false; CanPauseAnimation = true; CanStopAnimation = true; UpdateMainStatus("动画播放中"); UpdateMediaControlProperties(); // 更新媒体控制属性 break; - case NavisworksTransport.Core.Animation.AnimationState.Paused: + case Core.Animation.AnimationState.Paused: CanStartAnimation = true; // 暂停状态下可以继续 CanPauseAnimation = false; CanStopAnimation = true; UpdateMainStatus("动画已暂停"); UpdateMediaControlProperties(); // 更新媒体控制属性 break; - case NavisworksTransport.Core.Animation.AnimationState.Finished: + case Core.Animation.AnimationState.Finished: CanStartAnimation = true; CanPauseAnimation = false; CanStopAnimation = false; UpdateMainStatus("动画已完成"); UpdateMediaControlProperties(); // 更新媒体控制属性 + // 先清除所有碰撞高亮(包括预计算和ClashDetective) + ModelHighlightHelper.ClearCollisionHighlights(); // 检查并高亮ClashDetective结果 CheckAndHighlightClashDetectiveResults(); break; @@ -1376,6 +1378,8 @@ namespace NavisworksTransport.UI.WPF.ViewModels CanStopAnimation = false; UpdateMainStatus("动画已停止"); UpdateMediaControlProperties(); // 更新媒体控制属性 + // 先清除所有碰撞高亮(包括预计算和ClashDetective) + ModelHighlightHelper.ClearCollisionHighlights(); // 检查并高亮ClashDetective结果 CheckAndHighlightClashDetectiveResults(); break;