This commit is contained in:
2025-08-23 23:13:39 +08:00
parent 710a9014dd
commit 5665fcc823
8 changed files with 1019 additions and 93 deletions
+110
View File
@@ -45,6 +45,9 @@ namespace Ink_Canvas
// 全局快捷键管理器
private GlobalHotkeyManager _globalHotkeyManager;
// 墨迹渐隐管理器
private InkFadeManager _inkFadeManager;
#region Window Initialization
@@ -155,6 +158,9 @@ namespace Ink_Canvas
// 初始化墨迹平滑管理器
_inkSmoothingManager = new InkSmoothingManager(Dispatcher);
// 初始化墨迹渐隐管理器
_inkFadeManager = new InkFadeManager(this);
// 注册输入事件
inkCanvas.PreviewMouseDown += inkCanvas_PreviewMouseDown;
inkCanvas.StylusDown += inkCanvas_StylusDown;
@@ -501,6 +507,9 @@ namespace Ink_Canvas
// 初始化全局快捷键管理器
InitializeGlobalHotkeyManager();
// 初始化墨迹渐隐管理器
InitializeInkFadeManager();
}
private void SystemEventsOnDisplaySettingsChanged(object sender, EventArgs e)
@@ -637,6 +646,13 @@ namespace Ink_Canvas
_globalHotkeyManager = null;
}
// 清理墨迹渐隐管理器
if (_inkFadeManager != null)
{
_inkFadeManager.ClearAllFadingStrokes();
_inkFadeManager = null;
}
// 停止置顶维护定时器
StopTopmostMaintenance();
@@ -1967,6 +1983,31 @@ namespace Ink_Canvas
#endregion
#region
/// <summary>
/// 初始化墨迹渐隐管理器
/// </summary>
private void InitializeInkFadeManager()
{
try
{
// 确保墨迹渐隐管理器已初始化
if (_inkFadeManager == null)
{
_inkFadeManager = new InkFadeManager(this);
}
// 同步设置状态
_inkFadeManager.IsEnabled = Settings.Canvas.EnableInkFade;
_inkFadeManager.UpdateFadeTime(Settings.Canvas.InkFadeTime);
LogHelper.WriteLogToFile("墨迹渐隐管理器已初始化", LogHelper.LogType.Event);
}
catch (Exception ex)
{
LogHelper.WriteLogToFile($"初始化墨迹渐隐管理器时出错: {ex.Message}", LogHelper.LogType.Error);
}
}
/// <summary>
/// 初始化全局快捷键管理器
/// </summary>
@@ -2006,5 +2047,74 @@ namespace Ink_Canvas
}
}
#endregion
#region
/// <summary>
/// 墨迹渐隐开关切换事件处理
/// </summary>
private void ToggleSwitchEnableInkFade_Toggled(object sender, RoutedEventArgs e)
{
try
{
Settings.Canvas.EnableInkFade = ToggleSwitchEnableInkFade.IsOn;
_inkFadeManager.IsEnabled = Settings.Canvas.EnableInkFade;
// 同步批注子面板中的开关状态
if (ToggleSwitchInkFadeInPanel != null)
{
ToggleSwitchInkFadeInPanel.IsOn = Settings.Canvas.EnableInkFade;
}
LogHelper.WriteLogToFile($"墨迹渐隐功能已{(Settings.Canvas.EnableInkFade ? "" : "")}", LogHelper.LogType.Event);
}
catch (Exception ex)
{
LogHelper.WriteLogToFile($"切换墨迹渐隐功能时出错: {ex.Message}", LogHelper.LogType.Error);
}
}
/// <summary>
/// 墨迹渐隐时间滑块值改变事件处理
/// </summary>
private void InkFadeTimeSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
try
{
Settings.Canvas.InkFadeTime = (int)e.NewValue;
_inkFadeManager.UpdateFadeTime(Settings.Canvas.InkFadeTime);
LogHelper.WriteLogToFile($"墨迹渐隐时间已更新为 {Settings.Canvas.InkFadeTime}ms", LogHelper.LogType.Event);
}
catch (Exception ex)
{
LogHelper.WriteLogToFile($"更新墨迹渐隐时间时出错: {ex.Message}", LogHelper.LogType.Error);
}
}
/// <summary>
/// 批注子面板中墨迹渐隐开关切换事件处理
/// </summary>
private void ToggleSwitchInkFadeInPanel_Toggled(object sender, RoutedEventArgs e)
{
try
{
Settings.Canvas.EnableInkFade = ToggleSwitchInkFadeInPanel.IsOn;
_inkFadeManager.IsEnabled = Settings.Canvas.EnableInkFade;
// 同步设置面板中的开关状态
if (ToggleSwitchEnableInkFade != null)
{
ToggleSwitchEnableInkFade.IsOn = Settings.Canvas.EnableInkFade;
}
LogHelper.WriteLogToFile($"批注子面板中墨迹渐隐功能已{(Settings.Canvas.EnableInkFade ? "" : "")}", LogHelper.LogType.Event);
}
catch (Exception ex)
{
LogHelper.WriteLogToFile($"批注子面板中切换墨迹渐隐功能时出错: {ex.Message}", LogHelper.LogType.Error);
}
}
#endregion
}
}