Files
community/Ink Canvas/Windows/SettingsViews/Pages/AppearancePage.xaml.cs
T
PrefacedCorg b949b1651a add:新设置
2026-04-23 06:48:52 +08:00

349 lines
16 KiB
C#

using H.NotifyIcon;
using Ink_Canvas.Windows.SettingsViews.Helpers;
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Controls;
namespace Ink_Canvas.Windows.SettingsViews.Pages
{
public partial class AppearancePage : iNKORE.UI.WPF.Modern.Controls.Page
{
private bool _isLoaded = false;
public AppearancePage()
{
InitializeComponent();
Loaded += AppearancePage_Loaded;
}
private void AppearancePage_Loaded(object sender, RoutedEventArgs e)
{
LoadSettings();
_isLoaded = true;
}
private void LoadSettings()
{
_isLoaded = false;
try
{
var settings = SettingsManager.Settings;
if (settings.Appearance != null)
{
ComboBoxTheme.SelectedIndex = settings.Appearance.Theme;
ComboBoxLanguage.SelectedIndex = int.TryParse(settings.Appearance.Language, out int langIdx) ? langIdx : 0;
CardEnableSplashScreen.IsOn = settings.Appearance.EnableSplashScreen;
ComboBoxSplashScreenStyle.SelectedIndex = settings.Appearance.SplashScreenStyle;
ComboBoxFloatingBarImg.SelectedIndex = settings.Appearance.FloatingBarImg;
ViewboxFloatingBarScaleTransformValueSlider.Value = settings.Appearance.ViewboxFloatingBarScaleTransformValue;
ViewboxFloatingBarOpacityValueSlider.Value = settings.Appearance.ViewboxFloatingBarOpacityValue;
ViewboxFloatingBarOpacityInPPTValueSlider.Value = settings.Appearance.ViewboxFloatingBarOpacityInPPTValue;
CardEnableDisPlayNibModeToggle.IsOn = settings.Appearance.IsEnableDisPlayNibModeToggler;
CardEnableViewboxBlackBoardScaleTransform.IsOn = settings.Appearance.EnableViewboxBlackBoardScaleTransform;
CardEnableTimeDisplayInWhiteboardMode.IsOn = settings.Appearance.EnableTimeDisplayInWhiteboardMode;
CardEnableChickenSoupInWhiteboardMode.IsOn = settings.Appearance.EnableChickenSoupInWhiteboardMode;
ComboBoxChickenSoupSource.SelectedIndex = settings.Appearance.ChickenSoupSource;
CardEnableQuickPanel.IsOn = settings.Appearance.IsShowQuickPanel;
ComboBoxUnFoldBtnImg.SelectedIndex = settings.Appearance.UnFoldButtonImageType;
CardUseLegacyFloatingBarUI.IsOn = settings.Appearance.UseLegacyFloatingBarUI;
ToggleSwitchShowShapeButton.IsOn = settings.Appearance.IsShowShapeButton;
ToggleSwitchShowUndoButton.IsOn = settings.Appearance.IsShowUndoButton;
ToggleSwitchShowRedoButton.IsOn = settings.Appearance.IsShowRedoButton;
ToggleSwitchShowClearButton.IsOn = settings.Appearance.IsShowClearButton;
ToggleSwitchShowWhiteboardButton.IsOn = settings.Appearance.IsShowWhiteboardButton;
ToggleSwitchShowHideButton.IsOn = settings.Appearance.IsShowHideButton;
ToggleSwitchShowLassoSelectButton.IsOn = settings.Appearance.IsShowLassoSelectButton;
ToggleSwitchShowClearAndMouseButton.IsOn = settings.Appearance.IsShowClearAndMouseButton;
ToggleSwitchShowQuickColorPalette.IsOn = settings.Appearance.IsShowQuickColorPalette;
ComboBoxQuickColorPaletteDisplayMode.SelectedIndex = settings.Appearance.QuickColorPaletteDisplayMode;
ComboBoxEraserDisplayOption.SelectedIndex = settings.Appearance.EraserDisplayOption;
CardEnableTrayIcon.IsOn = settings.Appearance.EnableTrayIcon;
}
}
catch (Exception ex)
{
Debug.WriteLine($"加载外观设置时出错: {ex.Message}");
}
_isLoaded = true;
}
private void ComboBoxTheme_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (!_isLoaded) return;
MainWindowSettingsHelper.InvokeComboBoxSelectionChangedWithThemeCheck("ComboBoxTheme", (sender as ComboBox)?.SelectedItem);
}
private void ComboBoxLanguage_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (!_isLoaded) return;
try
{
SettingsManager.Settings.Appearance.Language = ComboBoxLanguage.SelectedIndex.ToString();
SettingsManager.SaveSettingsToFile();
}
catch (Exception ex)
{
Debug.WriteLine($"设置语言时出错: {ex.Message}");
}
}
private void ToggleSwitchEnableSplashScreen_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
try
{
SettingsManager.Settings.Appearance.EnableSplashScreen = CardEnableSplashScreen.IsOn;
SettingsManager.SaveSettingsToFile();
}
catch (Exception ex)
{
Debug.WriteLine($"设置启动画面时出错: {ex.Message}");
}
}
private void ComboBoxSplashScreenStyle_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (!_isLoaded) return;
try
{
SettingsManager.Settings.Appearance.SplashScreenStyle = ComboBoxSplashScreenStyle.SelectedIndex;
SettingsManager.SaveSettingsToFile();
}
catch (Exception ex)
{
Debug.WriteLine($"设置启动画面样式时出错: {ex.Message}");
}
}
private void ComboBoxFloatingBarImg_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (!_isLoaded) return;
MainWindowSettingsHelper.InvokeComboBoxSelectionChangedWithThemeCheck("ComboBoxFloatingBarImg", (sender as ComboBox)?.SelectedItem);
}
private void ButtonAddCustomIcon_Click(object sender, RoutedEventArgs e)
{
MainWindowSettingsHelper.InvokeMainWindowMethod("ButtonAddCustomIcon_Click", sender, e);
}
private void ButtonManageCustomIcons_Click(object sender, RoutedEventArgs e)
{
MainWindowSettingsHelper.InvokeMainWindowMethod("ButtonManageCustomIcons_Click", sender, e);
}
private void ViewboxFloatingBarScaleTransformValueSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
if (!_isLoaded) return;
MainWindowSettingsHelper.InvokeSliderValueChanged("ViewboxFloatingBarScaleTransformValueSlider", e.NewValue);
}
private void ViewboxFloatingBarOpacityValueSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
if (!_isLoaded) return;
MainWindowSettingsHelper.InvokeSliderValueChanged("ViewboxFloatingBarOpacityValueSlider", e.NewValue);
}
private void ViewboxFloatingBarOpacityInPPTValueSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
if (!_isLoaded) return;
MainWindowSettingsHelper.InvokeSliderValueChanged("ViewboxFloatingBarOpacityInPPTValueSlider", e.NewValue);
}
private void ToggleSwitchEnableDisPlayNibModeToggle_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
MainWindowSettingsHelper.InvokeToggleSwitchToggled("ToggleSwitchEnableDisPlayNibModeToggle", CardEnableDisPlayNibModeToggle.IsOn);
}
private void ToggleSwitchEnableViewboxBlackBoardScaleTransform_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
MainWindowSettingsHelper.InvokeToggleSwitchToggled("ToggleSwitchEnableViewboxBlackBoardScaleTransform", CardEnableViewboxBlackBoardScaleTransform.IsOn);
}
private void ToggleSwitchEnableTimeDisplayInWhiteboardMode_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
MainWindowSettingsHelper.InvokeToggleSwitchToggled("ToggleSwitchEnableTimeDisplayInWhiteboardMode", CardEnableTimeDisplayInWhiteboardMode.IsOn);
}
private void ToggleSwitchEnableChickenSoupInWhiteboardMode_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
MainWindowSettingsHelper.InvokeToggleSwitchToggled("ToggleSwitchEnableChickenSoupInWhiteboardMode", CardEnableChickenSoupInWhiteboardMode.IsOn);
}
private void ComboBoxChickenSoupSource_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (!_isLoaded) return;
MainWindowSettingsHelper.InvokeComboBoxSelectionChanged("ComboBoxChickenSoupSource", (sender as ComboBox)?.SelectedItem);
}
private void ToggleSwitchEnableQuickPanel_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
try
{
SettingsManager.Settings.Appearance.IsShowQuickPanel = CardEnableQuickPanel.IsOn;
SettingsManager.SaveSettingsToFile();
}
catch (Exception ex)
{
Debug.WriteLine($"设置快捷面板时出错: {ex.Message}");
}
}
private void ComboBoxUnFoldBtnImg_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (!_isLoaded) return;
MainWindowSettingsHelper.InvokeComboBoxSelectionChangedWithThemeCheck("ComboBoxUnFoldBtnImg", (sender as ComboBox)?.SelectedItem);
}
private void ToggleSwitchUseLegacyFloatingBarUI_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
MainWindowSettingsHelper.InvokeToggleSwitchToggled("CheckBoxUseLegacyFloatingBarUI", CardUseLegacyFloatingBarUI.IsOn);
}
private void ToggleSwitchShowShapeButton_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
try
{
SettingsManager.Settings.Appearance.IsShowShapeButton = ToggleSwitchShowShapeButton.IsOn;
SettingsManager.SaveSettingsToFile();
MainWindowSettingsHelper.InvokeMainWindowMethod("UpdateFloatingBarButtonsVisibility");
}
catch (Exception ex) { Debug.WriteLine($"设置形状按钮时出错: {ex.Message}"); }
}
private void ToggleSwitchShowUndoButton_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
try
{
SettingsManager.Settings.Appearance.IsShowUndoButton = ToggleSwitchShowUndoButton.IsOn;
SettingsManager.SaveSettingsToFile();
MainWindowSettingsHelper.InvokeMainWindowMethod("UpdateFloatingBarButtonsVisibility");
}
catch (Exception ex) { Debug.WriteLine($"设置撤销按钮时出错: {ex.Message}"); }
}
private void ToggleSwitchShowRedoButton_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
try
{
SettingsManager.Settings.Appearance.IsShowRedoButton = ToggleSwitchShowRedoButton.IsOn;
SettingsManager.SaveSettingsToFile();
MainWindowSettingsHelper.InvokeMainWindowMethod("UpdateFloatingBarButtonsVisibility");
}
catch (Exception ex) { Debug.WriteLine($"设置重做按钮时出错: {ex.Message}"); }
}
private void ToggleSwitchShowClearButton_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
try
{
SettingsManager.Settings.Appearance.IsShowClearButton = ToggleSwitchShowClearButton.IsOn;
SettingsManager.SaveSettingsToFile();
MainWindowSettingsHelper.InvokeMainWindowMethod("UpdateFloatingBarButtonsVisibility");
}
catch (Exception ex) { Debug.WriteLine($"设置清空按钮时出错: {ex.Message}"); }
}
private void ToggleSwitchShowWhiteboardButton_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
try
{
SettingsManager.Settings.Appearance.IsShowWhiteboardButton = ToggleSwitchShowWhiteboardButton.IsOn;
SettingsManager.SaveSettingsToFile();
MainWindowSettingsHelper.InvokeMainWindowMethod("UpdateFloatingBarButtonsVisibility");
}
catch (Exception ex) { Debug.WriteLine($"设置白板按钮时出错: {ex.Message}"); }
}
private void ToggleSwitchShowHideButton_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
try
{
SettingsManager.Settings.Appearance.IsShowHideButton = ToggleSwitchShowHideButton.IsOn;
SettingsManager.SaveSettingsToFile();
MainWindowSettingsHelper.InvokeMainWindowMethod("UpdateFloatingBarButtonsVisibility");
}
catch (Exception ex) { Debug.WriteLine($"设置隐藏按钮时出错: {ex.Message}"); }
}
private void ToggleSwitchShowLassoSelectButton_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
try
{
SettingsManager.Settings.Appearance.IsShowLassoSelectButton = ToggleSwitchShowLassoSelectButton.IsOn;
SettingsManager.SaveSettingsToFile();
MainWindowSettingsHelper.InvokeMainWindowMethod("UpdateFloatingBarButtonsVisibility");
}
catch (Exception ex) { Debug.WriteLine($"设置套索按钮时出错: {ex.Message}"); }
}
private void ToggleSwitchShowClearAndMouseButton_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
try
{
SettingsManager.Settings.Appearance.IsShowClearAndMouseButton = ToggleSwitchShowClearAndMouseButton.IsOn;
SettingsManager.SaveSettingsToFile();
MainWindowSettingsHelper.InvokeMainWindowMethod("UpdateFloatingBarButtonsVisibility");
}
catch (Exception ex) { Debug.WriteLine($"设置清并鼠按钮时出错: {ex.Message}"); }
}
private void ToggleSwitchShowQuickColorPalette_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
try
{
SettingsManager.Settings.Appearance.IsShowQuickColorPalette = ToggleSwitchShowQuickColorPalette.IsOn;
SettingsManager.SaveSettingsToFile();
MainWindowSettingsHelper.InvokeMainWindowMethod("UpdateFloatingBarButtonsVisibility");
}
catch (Exception ex) { Debug.WriteLine($"设置快捷调色盘时出错: {ex.Message}"); }
}
private void ComboBoxQuickColorPaletteDisplayMode_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (!_isLoaded) return;
try
{
SettingsManager.Settings.Appearance.QuickColorPaletteDisplayMode = ComboBoxQuickColorPaletteDisplayMode.SelectedIndex;
SettingsManager.SaveSettingsToFile();
}
catch (Exception ex) { Debug.WriteLine($"设置调色盘模式时出错: {ex.Message}"); }
}
private void ComboBoxEraserDisplayOption_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (!_isLoaded) return;
try
{
SettingsManager.Settings.Appearance.EraserDisplayOption = ComboBoxEraserDisplayOption.SelectedIndex;
SettingsManager.SaveSettingsToFile();
MainWindowSettingsHelper.InvokeMainWindowMethod("UpdateFloatingBarButtonsVisibility");
}
catch (Exception ex) { Debug.WriteLine($"设置橡皮擦显示时出错: {ex.Message}"); }
}
private void ToggleSwitchEnableTrayIcon_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
MainWindowSettingsHelper.InvokeToggleSwitchToggledWithThemeCheck("ToggleSwitchEnableTrayIcon", CardEnableTrayIcon.IsOn);
}
}
}