撤销新设置部分修改

This commit is contained in:
2026-01-10 17:46:39 +08:00
parent c9e6ba972b
commit 4697fb4664
2 changed files with 28 additions and 52 deletions
+28 -46
View File
@@ -1,6 +1,4 @@
using Ink_Canvas.Helpers; using Ink_Canvas.Helpers;
using Ink_Canvas.Windows;
using Ink_Canvas.Windows.SettingsViews;
using iNKORE.UI.WPF.Modern; using iNKORE.UI.WPF.Modern;
using System; using System;
using System.Diagnostics; using System.Diagnostics;
@@ -2872,67 +2870,51 @@ namespace Ink_Canvas
} }
private bool isOpeningOrHidingSettingsPane; private bool isOpeningOrHidingSettingsPane;
private bool wasNoFocusModeBeforeSettings;
private bool userChangedNoFocusModeInSettings;
private void BtnSettings_Click(object sender, RoutedEventArgs e) private void BtnSettings_Click(object sender, RoutedEventArgs e)
{ {
if (isOpeningOrHidingSettingsPane) return; if (BorderSettings.Visibility == Visibility.Visible)
HideSubPanels();
{ {
var settingsWindow = new SettingsWindow(); HideSubPanels();
settingsWindow.Owner = this;
settingsWindow.ShowDialog();
} }
} else
/// <summary>
/// 显示老设置面板
/// </summary>
public void ShowOldSettingsPanel()
{
if (isOpeningOrHidingSettingsPane) return;
HideSubPanels();
// 关闭新设置窗口
foreach (Window window in Application.Current.Windows)
{ {
if (window is SettingsWindow)
{
window.Close();
break;
}
}
// 显示老设置面板
if (BorderSettings.Visibility != Visibility.Visible)
{
isOpeningOrHidingSettingsPane = true;
BorderSettings.Visibility = Visibility.Visible; BorderSettings.Visibility = Visibility.Visible;
BorderSettingsMask.Visibility = Visibility.Visible; wasNoFocusModeBeforeSettings = Settings.Advanced.IsNoFocusMode;
userChangedNoFocusModeInSettings = false; // 重置用户修改标志
if (wasNoFocusModeBeforeSettings)
{
isTemporarilyDisablingNoFocusMode = true;
ApplyNoFocusMode();
}
// 设置蒙版为可点击,并添加半透明背景
BorderSettingsMask.IsHitTestVisible = true; BorderSettingsMask.IsHitTestVisible = true;
BorderSettingsMask.Background = new SolidColorBrush(Color.FromArgb(128, 0, 0, 0)); BorderSettingsMask.Background = new SolidColorBrush(Color.FromArgb(1, 0, 0, 0));
SettingsPanelScrollViewer.ScrollToTop();
// 设置初始位置
BorderSettings.RenderTransform = new TranslateTransform(490, 0);
var sb = new Storyboard(); var sb = new Storyboard();
// 滑动动画
var slideAnimation = new DoubleAnimation var slideAnimation = new DoubleAnimation
{ {
From = 490, From = BorderSettings.RenderTransform.Value.OffsetX - 490, // 滑动距离
To = 0, To = 0,
Duration = TimeSpan.FromSeconds(0.6), Duration = TimeSpan.FromSeconds(0.6),
EasingFunction = new CubicEase { EasingMode = EasingMode.EaseOut } EasingFunction = new CubicEase { EasingMode = EasingMode.EaseOut }
}; };
Storyboard.SetTargetProperty(slideAnimation, Storyboard.SetTargetProperty(slideAnimation,
new PropertyPath("(UIElement.RenderTransform).(TranslateTransform.X)")); new PropertyPath("(UIElement.RenderTransform).(TranslateTransform.X)"));
Storyboard.SetTarget(slideAnimation, BorderSettings);
sb.Children.Add(slideAnimation); sb.Children.Add(slideAnimation);
sb.Completed += (s, _) =>
{ sb.Completed += (s, _) => { isOpeningOrHidingSettingsPane = false; };
isOpeningOrHidingSettingsPane = false;
}; BorderSettings.RenderTransform = new TranslateTransform();
sb.Begin(); isOpeningOrHidingSettingsPane = true;
sb.Begin(BorderSettings);
} }
} }
@@ -4016,4 +3998,4 @@ namespace Ink_Canvas
} }
} }
} }
@@ -1232,12 +1232,6 @@ namespace Ink_Canvas.Windows
{ {
// 关闭新设置窗口 // 关闭新设置窗口
Close(); Close();
// 调用主窗口的显示老设置面板方法
if (_mainWindow != null)
{
_mainWindow.ShowOldSettingsPanel();
}
} }
private void ToggleSwitch_Click(object sender, MouseButtonEventArgs e) private void ToggleSwitch_Click(object sender, MouseButtonEventArgs e)