From 71dcb5d97c9a1405b62fde61a0a4838f10edd228 Mon Sep 17 00:00:00 2001 From: LuLu-ling Date: Tue, 16 Jun 2026 16:59:04 +0800 Subject: [PATCH 1/2] fix(mod-main): update visual properties of hints on alignment change --- Plain Craft Launcher 2/Modules/ModMain.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Plain Craft Launcher 2/Modules/ModMain.cs b/Plain Craft Launcher 2/Modules/ModMain.cs index b968d280d..2047dba61 100644 --- a/Plain Craft Launcher 2/Modules/ModMain.cs +++ b/Plain Craft Launcher 2/Modules/ModMain.cs @@ -339,6 +339,12 @@ private static void HintTick() if (!ModAnimation.AniIsRun($"Hint Show {doubleStackTag[1]}")) { ModAnimation.AniStop($"Hint Hide {doubleStackTag[1]}"); + // 对齐方向变化时更新现有提示的视觉属性 + doubleStack.CornerRadius = alignRight ? new CornerRadius(6d, 0d, 0d, 6d) : new CornerRadius(0d, 6d, 6d, 0d); + doubleStack.HorizontalAlignment = alignRight ? HorizontalAlignment.Right : HorizontalAlignment.Left; + doubleStack.Margin = alignRight ? new Thickness(20d, 0d, -70d, 0d) : new Thickness(-70d, 0d, 20d, 0d); + if (doubleStack.Child is TextBlock textBlock) + textBlock.Margin = alignRight ? new Thickness(8d, 5d, 33d, 5d) : new Thickness(33d, 5d, 8d, 5d); var delay = (800d + ModBase.MathClamp(currentHint.Text!.Length, 5d, 23d) * 180d) * ModAnimation.aniSpeed; ModAnimation.AniStart(new[] From 3d3d453b457fe7f8b7460024d3046b2f77924c33 Mon Sep 17 00:00:00 2001 From: LuLu-ling Date: Tue, 16 Jun 2026 17:20:58 +0800 Subject: [PATCH 2/2] apply --- Plain Craft Launcher 2/Modules/ModMain.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Plain Craft Launcher 2/Modules/ModMain.cs b/Plain Craft Launcher 2/Modules/ModMain.cs index 2047dba61..6f0baf9e1 100644 --- a/Plain Craft Launcher 2/Modules/ModMain.cs +++ b/Plain Craft Launcher 2/Modules/ModMain.cs @@ -339,12 +339,16 @@ private static void HintTick() if (!ModAnimation.AniIsRun($"Hint Show {doubleStackTag[1]}")) { ModAnimation.AniStop($"Hint Hide {doubleStackTag[1]}"); - // 对齐方向变化时更新现有提示的视觉属性 - doubleStack.CornerRadius = alignRight ? new CornerRadius(6d, 0d, 0d, 6d) : new CornerRadius(0d, 6d, 6d, 0d); - doubleStack.HorizontalAlignment = alignRight ? HorizontalAlignment.Right : HorizontalAlignment.Left; - doubleStack.Margin = alignRight ? new Thickness(20d, 0d, -70d, 0d) : new Thickness(-70d, 0d, 20d, 0d); - if (doubleStack.Child is TextBlock textBlock) - textBlock.Margin = alignRight ? new Thickness(8d, 5d, 33d, 5d) : new Thickness(33d, 5d, 8d, 5d); + // 对齐方向变化时更新现有提示的视觉属性,避免跳回起始位置 + var targetAlign = alignRight ? HorizontalAlignment.Right : HorizontalAlignment.Left; + if (doubleStack.HorizontalAlignment != targetAlign) + { + doubleStack.CornerRadius = alignRight ? new CornerRadius(6d, 0d, 0d, 6d) : new CornerRadius(0d, 6d, 6d, 0d); + doubleStack.HorizontalAlignment = targetAlign; + doubleStack.Margin = alignRight ? new Thickness(20d, 0d, -70d, 0d) : new Thickness(-70d, 0d, 20d, 0d); + if (doubleStack.Child is TextBlock textBlock) + textBlock.Margin = alignRight ? new Thickness(8d, 5d, 33d, 5d) : new Thickness(33d, 5d, 8d, 5d); + } var delay = (800d + ModBase.MathClamp(currentHint.Text!.Length, 5d, 23d) * 180d) * ModAnimation.aniSpeed; ModAnimation.AniStart(new[]