优化代码

This commit is contained in:
2025-09-30 17:46:35 +08:00
parent 92e695ef7c
commit 92bb458345
16 changed files with 71 additions and 131 deletions
+18 -34
View File
@@ -26,6 +26,7 @@ using System.Windows.Threading;
using Application = System.Windows.Application;
using Brushes = System.Windows.Media.Brushes;
using Button = System.Windows.Controls.Button;
using ComboBox = System.Windows.Controls.ComboBox;
using Cursor = System.Windows.Input.Cursor;
using Cursors = System.Windows.Input.Cursors;
using DpiChangedEventArgs = System.Windows.DpiChangedEventArgs;
@@ -328,8 +329,7 @@ namespace Ink_Canvas
private void inkCanvas_EditingModeChanged(object sender, RoutedEventArgs e)
{
var inkCanvas1 = sender as InkCanvas;
if (inkCanvas1 == null) return;
if (!(sender is InkCanvas inkCanvas1)) return;
// 使用辅助方法设置光标
SetCursorBasedOnEditingMode(inkCanvas1);
@@ -358,8 +358,7 @@ namespace Ink_Canvas
if (inkCanvas1.EditingMode == InkCanvasEditingMode.Ink) forcePointEraser = !forcePointEraser;
// 处理橡皮擦覆盖层的启用/禁用
var eraserOverlay = FindName("EraserOverlayCanvas") as Canvas;
if (eraserOverlay != null)
if (FindName("EraserOverlayCanvas") is Canvas eraserOverlay)
{
if (inkCanvas1.EditingMode == InkCanvasEditingMode.EraseByPoint)
{
@@ -1301,8 +1300,7 @@ namespace Ink_Canvas
BorderSettingsMask.Background = new SolidColorBrush(Color.FromArgb(1, 0, 0, 0));
// 获取SettingsPanelScrollViewer中的所有GroupBox
var stackPanel = SettingsPanelScrollViewer.Content as StackPanel;
if (stackPanel == null) return;
if (!(SettingsPanelScrollViewer.Content is StackPanel stackPanel)) return;
// 确保所有GroupBox都是可见的
foreach (var child in stackPanel.Children)
@@ -1517,20 +1515,15 @@ namespace Ink_Canvas
// 清除所有导航按钮的Tag属性
private void ClearAllNavButtonTags()
{
var grid = BorderSettings.Child as Grid;
if (grid == null) return;
if (!(BorderSettings.Child is Grid grid)) return;
var navSidebar = grid.Children[0] as Border;
if (navSidebar == null) return;
if (!(grid.Children[0] is Border navSidebar)) return;
var navGrid = navSidebar.Child as Grid;
if (navGrid == null) return;
if (!(navSidebar.Child is Grid navGrid)) return;
var scrollViewer = navGrid.Children[1] as ScrollViewer;
if (scrollViewer == null) return;
if (!(navGrid.Children[1] is ScrollViewer scrollViewer)) return;
var stackPanel = scrollViewer.Content as StackPanel;
if (stackPanel == null) return;
if (!(scrollViewer.Content is StackPanel stackPanel)) return;
foreach (var child in stackPanel.Children)
{
@@ -1544,30 +1537,24 @@ namespace Ink_Canvas
// 设置导航按钮的Tag属性
private void SetNavButtonTag(string tag)
{
var grid = BorderSettings.Child as Grid;
if (grid == null) return;
if (!(BorderSettings.Child is Grid grid)) return;
var navSidebar = grid.Children[0] as Border;
if (navSidebar == null) return;
if (!(grid.Children[0] is Border navSidebar)) return;
var navGrid = navSidebar.Child as Grid;
if (navGrid == null) return;
if (!(navSidebar.Child is Grid navGrid)) return;
var scrollViewer = navGrid.Children[1] as ScrollViewer;
if (scrollViewer == null) return;
if (!(navGrid.Children[1] is ScrollViewer scrollViewer)) return;
var stackPanel = scrollViewer.Content as StackPanel;
if (stackPanel == null) return;
if (!(scrollViewer.Content is StackPanel stackPanel)) return;
foreach (var child in stackPanel.Children)
{
if (child is Button button)
{
// 检查按钮的ToolTip属性,根据tag设置对应的按钮
string buttonTag = button.Tag as string;
// 如果按钮的Tag与要设置的tag匹配,则设置Tag
if (buttonTag != null && buttonTag.ToLower() == tag.ToLower())
if (button.Tag is string buttonTag && buttonTag.ToLower() == tag.ToLower())
{
button.Tag = tag;
return;
@@ -2546,8 +2533,7 @@ namespace Ink_Canvas
try
{
// 获取滑块的轨道元素
var track = slider.Template.FindName("PART_Track", slider) as Track;
if (track == null)
if (!(slider.Template.FindName("PART_Track", slider) is Track track))
{
// 如果找不到轨道,使用简单方法
UpdateSliderValueFromPosition(slider, position);
@@ -2674,8 +2660,7 @@ namespace Ink_Canvas
{
try
{
var toggle = sender as ToggleSwitch;
if (toggle != null)
if (sender is ToggleSwitch toggle)
{
Settings.ModeSettings.IsPPTOnlyMode = toggle.IsOn;
@@ -2773,8 +2758,7 @@ namespace Ink_Canvas
try
{
System.Windows.Controls.ComboBox comboBox = sender as System.Windows.Controls.ComboBox;
if (comboBox != null)
if (sender is ComboBox comboBox)
{
Settings.Appearance.Theme = comboBox.SelectedIndex;