add:新设置

This commit is contained in:
2026-02-07 10:37:51 +08:00
parent 87aae93f4b
commit 5cc1c7093a
8 changed files with 392 additions and 32 deletions
@@ -232,6 +232,55 @@ namespace Ink_Canvas.Windows.SettingsViews
}
}
private bool GetCurrentSettingValue(string tag)
{
if (MainWindow.Settings?.Advanced == null) return false;
try
{
var advanced = MainWindow.Settings.Advanced;
switch (tag)
{
case "IsSpecialScreen":
return advanced.IsSpecialScreen;
case "EraserBindTouchMultiplier":
return advanced.EraserBindTouchMultiplier;
case "IsQuadIR":
return advanced.IsQuadIR;
case "IsLogEnabled":
return advanced.IsLogEnabled;
case "IsSaveLogByDate":
return advanced.IsSaveLogByDate;
case "IsSecondConfirmWhenShutdownApp":
return advanced.IsSecondConfirmWhenShutdownApp;
case "IsEnableFullScreenHelper":
return advanced.IsEnableFullScreenHelper;
case "IsEnableAvoidFullScreenHelper":
return advanced.IsEnableAvoidFullScreenHelper;
case "IsEnableEdgeGestureUtil":
return advanced.IsEnableEdgeGestureUtil;
case "IsEnableForceFullScreen":
return advanced.IsEnableForceFullScreen;
case "IsEnableDPIChangeDetection":
return advanced.IsEnableDPIChangeDetection;
case "IsEnableResolutionChangeDetection":
return advanced.IsEnableResolutionChangeDetection;
case "IsAutoBackupBeforeUpdate":
return advanced.IsAutoBackupBeforeUpdate;
case "IsAutoBackupEnabled":
return advanced.IsAutoBackupEnabled;
case "IsEnableUriScheme":
return advanced.IsEnableUriScheme;
default:
return false;
}
}
catch
{
return false;
}
}
/// <summary>
/// ToggleSwitch点击事件处理
/// </summary>
@@ -242,13 +291,13 @@ namespace Ink_Canvas.Windows.SettingsViews
var border = sender as Border;
if (border == null) return;
bool isOn = border.Background.ToString() == "#FF3584E4";
bool newState = !isOn;
SetToggleSwitchState(border, newState);
string tag = border.Tag?.ToString();
if (string.IsNullOrEmpty(tag)) return;
bool currentState = GetCurrentSettingValue(tag);
bool newState = !currentState;
SetToggleSwitchState(border, newState);
var advanced = MainWindow.Settings.Advanced;
if (advanced == null) return;
@@ -526,6 +575,10 @@ namespace Ink_Canvas.Windows.SettingsViews
try
{
ThemeHelper.ApplyThemeToControl(this);
if (_isLoaded)
{
LoadSettings();
}
}
catch (Exception ex)
{
@@ -230,6 +230,67 @@ namespace Ink_Canvas.Windows.SettingsViews
}
}
private bool GetCurrentSettingValue(string tag)
{
if (MainWindow.Settings?.Canvas == null) return false;
try
{
var canvas = MainWindow.Settings.Canvas;
switch (tag)
{
case "ShowCursor":
return canvas.IsShowCursor;
case "EnablePressureTouchMode":
return canvas.EnablePressureTouchMode;
case "DisablePressure":
return canvas.DisablePressure;
case "HideStrokeWhenSelecting":
return canvas.HideStrokeWhenSelecting;
case "ClearCanvasAndClearTimeMachine":
return canvas.ClearCanvasAndClearTimeMachine;
case "ClearCanvasAlsoClearImages":
return canvas.ClearCanvasAlsoClearImages;
case "CompressPicturesUploaded":
return canvas.IsCompressPicturesUploaded;
case "ShowCircleCenter":
return canvas.ShowCircleCenter;
case "FitToCurve":
return canvas.FitToCurve && !canvas.UseAdvancedBezierSmoothing;
case "AdvancedBezierSmoothing":
return canvas.UseAdvancedBezierSmoothing;
case "UseAsyncInkSmoothing":
return canvas.UseAsyncInkSmoothing;
case "UseHardwareAcceleration":
return canvas.UseHardwareAcceleration;
case "AutoStraightenLine":
return canvas.AutoStraightenLine;
case "HighPrecisionLineStraighten":
return canvas.HighPrecisionLineStraighten;
case "LineEndpointSnapping":
return canvas.LineEndpointSnapping;
case "EnableInkFade":
return canvas.EnableInkFade;
case "HideInkFadeControlInPenMenu":
return canvas.HideInkFadeControlInPenMenu;
case "EnableAutoSaveStrokes":
return MainWindow.Settings.Automation?.IsEnableAutoSaveStrokes ?? false;
case "SaveFullPageStrokes":
return MainWindow.Settings.Automation?.IsSaveFullPageStrokes ?? false;
case "SaveStrokesAsXML":
return MainWindow.Settings.Automation?.IsSaveStrokesAsXML ?? false;
case "AutoSaveStrokesInPowerPoint":
return MainWindow.Settings.PowerPointSettings?.IsAutoSaveStrokesInPowerPoint ?? false;
default:
return false;
}
}
catch
{
return false;
}
}
/// <summary>
/// ToggleSwitch点击事件处理
/// </summary>
@@ -240,13 +301,13 @@ namespace Ink_Canvas.Windows.SettingsViews
var border = sender as Border;
if (border == null) return;
bool isOn = border.Background.ToString() == "#FF3584E4";
bool newState = !isOn;
SetToggleSwitchState(border, newState);
string tag = border.Tag?.ToString();
if (string.IsNullOrEmpty(tag)) return;
bool currentState = GetCurrentSettingValue(tag);
bool newState = !currentState;
SetToggleSwitchState(border, newState);
var canvas = MainWindow.Settings.Canvas;
if (canvas == null) return;
@@ -602,6 +663,10 @@ namespace Ink_Canvas.Windows.SettingsViews
try
{
ThemeHelper.ApplyThemeToControl(this);
if (_isLoaded)
{
LoadSettings();
}
}
catch (Exception ex)
{
@@ -172,6 +172,30 @@ namespace Ink_Canvas.Windows.SettingsViews
}
}
private bool GetCurrentSettingValue(string tag)
{
if (MainWindow.Settings == null) return false;
try
{
switch (tag)
{
case "AutoSwitchTwoFingerGesture":
return MainWindow.Settings.Gesture?.AutoSwitchTwoFingerGesture ?? false;
case "EnableTwoFingerRotationOnSelection":
return MainWindow.Settings.Gesture?.IsEnableTwoFingerRotationOnSelection ?? false;
case "EnablePalmEraser":
return MainWindow.Settings.Canvas?.EnablePalmEraser ?? false;
default:
return false;
}
}
catch
{
return false;
}
}
/// <summary>
/// ToggleSwitch点击事件处理
/// </summary>
@@ -182,13 +206,13 @@ namespace Ink_Canvas.Windows.SettingsViews
var border = sender as Border;
if (border == null) return;
bool isOn = border.Background.ToString() == "#FF3584E4";
bool newState = !isOn;
SetToggleSwitchState(border, newState);
string tag = border.Tag?.ToString();
if (string.IsNullOrEmpty(tag)) return;
bool currentState = GetCurrentSettingValue(tag);
bool newState = !currentState;
SetToggleSwitchState(border, newState);
switch (tag)
{
case "AutoSwitchTwoFingerGesture":
@@ -316,6 +340,10 @@ namespace Ink_Canvas.Windows.SettingsViews
try
{
ThemeHelper.ApplyThemeToControl(this);
if (_isLoaded)
{
LoadSettings();
}
}
catch (Exception ex)
{
@@ -220,6 +220,37 @@ namespace Ink_Canvas.Windows.SettingsViews
}
}
private bool GetCurrentSettingValue(string tag)
{
if (MainWindow.Settings?.RandSettings == null) return false;
try
{
var randSettings = MainWindow.Settings.RandSettings;
switch (tag)
{
case "DisplayRandWindowNamesInputBtn":
return randSettings.DisplayRandWindowNamesInputBtn;
case "ShowRandomAndSingleDraw":
return randSettings.ShowRandomAndSingleDraw;
case "EnableQuickDraw":
return randSettings.EnableQuickDraw;
case "ExternalCaller":
return randSettings.DirectCallCiRand;
case "UseNewRollCallUI":
return randSettings.UseNewRollCallUI;
case "EnableMLAvoidance":
return randSettings.EnableMLAvoidance;
default:
return false;
}
}
catch
{
return false;
}
}
/// <summary>
/// ToggleSwitch点击事件处理
/// </summary>
@@ -230,13 +261,13 @@ namespace Ink_Canvas.Windows.SettingsViews
var border = sender as Border;
if (border == null) return;
bool isOn = border.Background.ToString() == "#FF3584E4";
bool newState = !isOn;
SetToggleSwitchState(border, newState);
string tag = border.Tag?.ToString();
if (string.IsNullOrEmpty(tag)) return;
bool currentState = GetCurrentSettingValue(tag);
bool newState = !currentState;
SetToggleSwitchState(border, newState);
var randSettings = MainWindow.Settings.RandSettings;
if (randSettings == null) return;
@@ -435,6 +466,10 @@ namespace Ink_Canvas.Windows.SettingsViews
try
{
ThemeHelper.ApplyThemeToControl(this);
if (_isLoaded)
{
LoadSettings();
}
}
catch (Exception ex)
{
@@ -311,6 +311,59 @@ namespace Ink_Canvas.Windows.SettingsViews
}
}
private bool GetCurrentSettingValue(string tag)
{
if (MainWindow.Settings?.PowerPointSettings == null) return false;
try
{
var pptSettings = MainWindow.Settings.PowerPointSettings;
switch (tag)
{
case "SupportPowerPoint":
return pptSettings.PowerPointSupport;
case "PowerPointEnhancement":
return pptSettings.EnablePowerPointEnhancement;
case "SupportWPS":
return pptSettings.IsSupportWPS;
case "EnableWppProcessKill":
return pptSettings.EnableWppProcessKill;
case "ShowPPTButton":
return pptSettings.ShowPPTButton;
case "EnablePPTButtonPageClickable":
return pptSettings.EnablePPTButtonPageClickable;
case "EnablePPTButtonLongPressPageTurn":
return pptSettings.EnablePPTButtonLongPressPageTurn;
case "SkipAnimationsWhenGoNext":
return pptSettings.SkipAnimationsWhenGoNext;
case "ShowCanvasAtNewSlideShow":
return pptSettings.IsShowCanvasAtNewSlideShow;
case "EnableTwoFingerGestureInPresentationMode":
return pptSettings.IsEnableTwoFingerGestureInPresentationMode;
case "EnableFingerGestureSlideShowControl":
return pptSettings.IsEnableFingerGestureSlideShowControl;
case "ShowGestureButtonInSlideShow":
return pptSettings.ShowGestureButtonInSlideShow;
case "EnablePPTTimeCapsule":
return pptSettings.EnablePPTTimeCapsule;
case "NotifyPreviousPage":
return pptSettings.IsNotifyPreviousPage;
case "AlwaysGoToFirstPageOnReenter":
return pptSettings.IsAlwaysGoToFirstPageOnReenter;
case "NotifyHiddenPage":
return pptSettings.IsNotifyHiddenPage;
case "NotifyAutoPlayPresentation":
return pptSettings.IsNotifyAutoPlayPresentation;
default:
return false;
}
}
catch
{
return false;
}
}
/// <summary>
/// ToggleSwitch点击事件处理
/// </summary>
@@ -321,13 +374,13 @@ namespace Ink_Canvas.Windows.SettingsViews
var border = sender as Border;
if (border == null) return;
bool isOn = border.Background.ToString() == "#FF3584E4";
bool newState = !isOn;
SetToggleSwitchState(border, newState);
string tag = border.Tag?.ToString();
if (string.IsNullOrEmpty(tag)) return;
bool currentState = GetCurrentSettingValue(tag);
bool newState = !currentState;
SetToggleSwitchState(border, newState);
var pptSettings = MainWindow.Settings.PowerPointSettings;
if (pptSettings == null) return;
@@ -639,6 +692,10 @@ namespace Ink_Canvas.Windows.SettingsViews
try
{
ThemeHelper.ApplyThemeToControl(this);
if (_isLoaded)
{
LoadSettings();
}
}
catch (Exception ex)
{
@@ -169,6 +169,39 @@ namespace Ink_Canvas.Windows.SettingsViews
}
}
private bool GetCurrentSettingValue(string tag)
{
if (MainWindow.Settings == null) return false;
try
{
switch (tag)
{
case "AutoSaveStrokesAtClear":
return MainWindow.Settings.Automation?.IsAutoSaveStrokesAtClear ?? false;
case "SaveScreenshotsInDateFolders":
return MainWindow.Settings.Automation?.IsSaveScreenshotsInDateFolders ?? false;
case "AutoSaveStrokesAtScreenshot":
return MainWindow.Settings.Automation?.IsAutoSaveStrokesAtScreenshot ?? false;
case "AutoSaveScreenShotInPowerPoint":
return MainWindow.Settings.PowerPointSettings?.IsAutoSaveScreenShotInPowerPoint ?? false;
case "AutoDelSavedFiles":
return MainWindow.Settings.Automation?.AutoDelSavedFiles ?? false;
default:
return false;
}
}
catch
{
return false;
}
}
/// <summary>
/// ToggleSwitch点击事件处理
/// </summary>
@@ -179,13 +212,14 @@ namespace Ink_Canvas.Windows.SettingsViews
var border = sender as Border;
if (border == null) return;
bool isOn = border.Background.ToString() == "#FF3584E4";
bool newState = !isOn;
SetToggleSwitchState(border, newState);
string tag = border.Tag?.ToString();
if (string.IsNullOrEmpty(tag)) return;
bool currentState = GetCurrentSettingValue(tag);
bool newState = !currentState;
SetToggleSwitchState(border, newState);
switch (tag)
{
case "AutoSaveStrokesAtClear":
@@ -366,6 +400,10 @@ namespace Ink_Canvas.Windows.SettingsViews
try
{
ThemeHelper.ApplyThemeToControl(this);
if (_isLoaded)
{
LoadSettings();
}
}
catch (Exception ex)
{
@@ -233,6 +233,44 @@ namespace Ink_Canvas.Windows.SettingsViews
}
}
private bool GetCurrentSettingValue(string tag)
{
if (MainWindow.Settings == null) return false;
try
{
switch (tag)
{
case "IsAutoUpdate":
return MainWindow.Settings.Startup?.IsAutoUpdate ?? false;
case "IsAutoUpdateWithSilence":
return MainWindow.Settings.Startup?.IsAutoUpdateWithSilence ?? false;
case "RunAtStartup":
// 检查启动项是否存在
return System.IO.File.Exists(
Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\Ink Canvas Annotation.lnk");
case "FoldAtStartup":
return MainWindow.Settings.Startup?.IsFoldAtStartup ?? false;
case "NoFocusMode":
return MainWindow.Settings.Advanced?.IsNoFocusMode ?? false;
case "WindowMode":
return MainWindow.Settings.Advanced?.WindowMode ?? false;
case "AlwaysOnTop":
return MainWindow.Settings.Advanced?.IsAlwaysOnTop ?? false;
case "UIAccessTopMost":
return MainWindow.Settings.Advanced?.EnableUIAccessTopMost ?? false;
case "Mode":
return MainWindow.Settings.ModeSettings?.IsPPTOnlyMode ?? false;
default:
return false;
}
}
catch
{
return false;
}
}
/// <summary>
/// ToggleSwitch点击事件处理
/// </summary>
@@ -243,13 +281,13 @@ namespace Ink_Canvas.Windows.SettingsViews
var border = sender as Border;
if (border == null) return;
bool isOn = border.Background.ToString() == "#FF3584E4";
bool newState = !isOn;
SetToggleSwitchState(border, newState);
string tag = border.Tag?.ToString();
if (string.IsNullOrEmpty(tag)) return;
bool currentState = GetCurrentSettingValue(tag);
bool newState = !currentState;
SetToggleSwitchState(border, newState);
switch (tag)
{
case "IsAutoUpdate":
@@ -552,6 +590,10 @@ namespace Ink_Canvas.Windows.SettingsViews
// 使用 ThemeHelper 递归更新其他元素
ThemeHelper.ApplyThemeToControl(this);
if (_isLoaded)
{
LoadSettings();
}
}
catch (Exception ex)
{
@@ -239,6 +239,44 @@ namespace Ink_Canvas.Windows.SettingsViews
}
}
private bool GetCurrentSettingValue(string tag)
{
if (MainWindow.Settings == null) return false;
try
{
switch (tag)
{
case "EnableSplashScreen":
return MainWindow.Settings.Appearance?.EnableSplashScreen ?? false;
case "EnableDisPlayNibModeToggle":
return MainWindow.Settings.Appearance?.IsEnableDisPlayNibModeToggler ?? false;
case "EnableTrayIcon":
return MainWindow.Settings.Appearance?.EnableTrayIcon ?? false;
case "EnableViewboxBlackBoardScaleTransform":
return MainWindow.Settings.Appearance?.EnableViewboxBlackBoardScaleTransform ?? false;
case "EnableTimeDisplayInWhiteboardMode":
return MainWindow.Settings.Appearance?.EnableTimeDisplayInWhiteboardMode ?? false;
case "EnableChickenSoupInWhiteboardMode":
return MainWindow.Settings.Appearance?.EnableChickenSoupInWhiteboardMode ?? false;
case "EnableQuickPanel":
return MainWindow.Settings.Appearance?.IsShowQuickPanel ?? false;
case "AutoEnterAnnotationModeWhenExitFoldMode":
return MainWindow.Settings.Automation?.IsAutoEnterAnnotationModeWhenExitFoldMode ?? false;
case "AutoFoldAfterPPTSlideShow":
return MainWindow.Settings.Automation?.IsAutoFoldAfterPPTSlideShow ?? false;
case "AutoFoldWhenExitWhiteboard":
return MainWindow.Settings.Automation?.IsAutoFoldWhenExitWhiteboard ?? false;
default:
return false;
}
}
catch
{
return false;
}
}
/// <summary>
/// ToggleSwitch点击事件处理
/// </summary>
@@ -249,13 +287,13 @@ namespace Ink_Canvas.Windows.SettingsViews
var border = sender as Border;
if (border == null) return;
bool isOn = border.Background.ToString() == "#FF3584E4";
bool newState = !isOn;
SetToggleSwitchState(border, newState);
string tag = border.Tag?.ToString();
if (string.IsNullOrEmpty(tag)) return;
bool currentState = GetCurrentSettingValue(tag);
bool newState = !currentState;
SetToggleSwitchState(border, newState);
var appearance = MainWindow.Settings.Appearance;
if (appearance == null) return;
@@ -798,6 +836,10 @@ namespace Ink_Canvas.Windows.SettingsViews
try
{
ThemeHelper.ApplyThemeToControl(this);
if (_isLoaded)
{
LoadSettings();
}
}
catch (Exception ex)
{