From d7e833001697f89970d8164fc1f2953d4ee8352c Mon Sep 17 00:00:00 2001 From: PrefacedCorg <1876568293@qq.com> Date: Sat, 27 Dec 2025 10:51:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E5=8F=AF?= =?UTF-8?q?=E8=AF=BB=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 其实单纯就是强迫症 --- Ink Canvas/MainWindow.xaml | 10 +-- .../MainWindow_cs/MW_FloatingBarIcons.cs | 83 +++++++++---------- Ink Canvas/MainWindow_cs/MW_TouchEvents.cs | 72 +++++++--------- 3 files changed, 76 insertions(+), 89 deletions(-) diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml index 346b459e..795b4948 100644 --- a/Ink Canvas/MainWindow.xaml +++ b/Ink Canvas/MainWindow.xaml @@ -4251,16 +4251,16 @@ TouchMove="inkCanvas_TouchMove" ManipulationDelta="Main_Grid_ManipulationDelta" ManipulationCompleted="Main_Grid_ManipulationCompleted" - ManipulationInertiaStarting="inkCanvas_ManipulationInertiaStarting" + ManipulationInertiaStarting="InkCanvas_ManipulationInertiaStarting" IsManipulationEnabled="True" EditingModeChanged="inkCanvas_EditingModeChanged" - PreviewTouchDown="inkCanvas_PreviewTouchDown" - PreviewTouchMove="inkCanvas_PreviewTouchMove" - PreviewTouchUp="inkCanvas_PreviewTouchUp" + PreviewTouchDown="InkCanvas_PreviewTouchDown" + PreviewTouchMove="InkCanvas_PreviewTouchMove" + PreviewTouchUp="InkCanvas_PreviewTouchUp" MouseDown="inkCanvas_MouseDown" MouseMove="inkCanvas_MouseMove" MouseUp="inkCanvas_MouseUp" - ManipulationStarting="inkCanvas_ManipulationStarting" + ManipulationStarting="InkCanvas_ManipulationStarting" SelectionChanged="inkCanvas_SelectionChanged" StrokeCollected="inkCanvas_StrokeCollected" ClipToBounds="False" diff --git a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs index ef25c465..ef8cf1c0 100644 --- a/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs +++ b/Ink Canvas/MainWindow_cs/MW_FloatingBarIcons.cs @@ -355,8 +355,7 @@ namespace Ink_Canvas AnimationsHelper.HideWithSlideAndFade(BoardImageOptionsPanel); // 隐藏背景设置面板 - var bgPalette = LogicalTreeHelper.FindLogicalNode(this, "BackgroundPalette") as Border; - if (bgPalette != null) + if (LogicalTreeHelper.FindLogicalNode(this, "BackgroundPalette") is Border bgPalette) { AnimationsHelper.HideWithSlideAndFade(bgPalette); } @@ -373,9 +372,9 @@ namespace Ink_Canvas { From = 0, // 滑动距离 To = BorderSettings.RenderTransform.Value.OffsetX - 490, - Duration = TimeSpan.FromSeconds(0.6) + Duration = TimeSpan.FromSeconds(0.6), + EasingFunction = new CubicEase { EasingMode = EasingMode.EaseOut } }; - slideAnimation.EasingFunction = new CubicEase { EasingMode = EasingMode.EaseOut }; Storyboard.SetTargetProperty(slideAnimation, new PropertyPath("(UIElement.RenderTransform).(TranslateTransform.X)")); @@ -592,8 +591,8 @@ namespace Ink_Canvas { //if (lastBorderMouseDownObject != sender) return; - if (lastBorderMouseDownObject != null && lastBorderMouseDownObject is Panel) - ((Panel)lastBorderMouseDownObject).Background = new SolidColorBrush(Colors.Transparent); + if (lastBorderMouseDownObject is Panel panel) + panel.Background = new SolidColorBrush(Colors.Transparent); if (sender == SymbolIconUndo && lastBorderMouseDownObject != SymbolIconUndo) return; if (!BtnUndo.IsEnabled) return; @@ -605,8 +604,8 @@ namespace Ink_Canvas { //if (lastBorderMouseDownObject != sender) return; - if (lastBorderMouseDownObject != null && lastBorderMouseDownObject is Panel) - ((Panel)lastBorderMouseDownObject).Background = new SolidColorBrush(Colors.Transparent); + if (lastBorderMouseDownObject is Panel panel) + panel.Background = new SolidColorBrush(Colors.Transparent); if (sender == SymbolIconRedo && lastBorderMouseDownObject != SymbolIconRedo) return; if (!BtnRedo.IsEnabled) return; @@ -624,8 +623,8 @@ namespace Ink_Canvas internal void ImageBlackboard_MouseUp(object sender, MouseButtonEventArgs e) { - if (lastBorderMouseDownObject != null && lastBorderMouseDownObject is Panel) - ((Panel)lastBorderMouseDownObject).Background = new SolidColorBrush(Colors.Transparent); + if (lastBorderMouseDownObject is Panel panel) + panel.Background = new SolidColorBrush(Colors.Transparent); if (sender == WhiteboardFloatingBarBtn && lastBorderMouseDownObject != WhiteboardFloatingBarBtn) return; LeftUnFoldButtonQuickPanel.Visibility = Visibility.Collapsed; @@ -745,10 +744,7 @@ namespace Ink_Canvas } // 使用PPT UI管理器来正确更新翻页按钮显示状态,确保遵循用户设置 - if (_pptUIManager != null) - { - _pptUIManager.UpdateNavigationPanelsVisibility(); - } + _pptUIManager?.UpdateNavigationPanelsVisibility(); if (Settings.Automation.IsAutoSaveStrokesAtClear && inkCanvas.Strokes.Count > Settings.Automation.MinimumAutomationStrokeNumber) SaveScreenShot(true); @@ -854,8 +850,8 @@ namespace Ink_Canvas internal void SymbolIconDelete_MouseUp(object sender, MouseButtonEventArgs e) { - if (lastBorderMouseDownObject != null && lastBorderMouseDownObject is Panel) - ((Panel)lastBorderMouseDownObject).Background = new SolidColorBrush(Colors.Transparent); + if (lastBorderMouseDownObject is Panel panel) + panel.Background = new SolidColorBrush(Colors.Transparent); if (sender == SymbolIconDelete && lastBorderMouseDownObject != SymbolIconDelete) return; if (inkCanvas.GetSelectedStrokes().Count > 0) @@ -905,8 +901,8 @@ namespace Ink_Canvas internal void SymbolIconSelect_MouseUp(object sender, MouseButtonEventArgs e) { - if (lastBorderMouseDownObject != null && lastBorderMouseDownObject is Panel) - ((Panel)lastBorderMouseDownObject).Background = new SolidColorBrush(Colors.Transparent); + if (lastBorderMouseDownObject is Panel panel) + panel.Background = new SolidColorBrush(Colors.Transparent); if (sender == SymbolIconSelect && lastBorderMouseDownObject != SymbolIconSelect) return; BtnSelect_Click(null, null); @@ -935,8 +931,7 @@ namespace Ink_Canvas if (border.Name?.StartsWith("QuickColor") == true) { // 保存原始颜色并添加透明度 - var originalColor = border.Background as SolidColorBrush; - if (originalColor != null) + if (border.Background is SolidColorBrush originalColor) { border.Background = new SolidColorBrush(Color.FromArgb(180, originalColor.Color.R, originalColor.Color.G, originalColor.Color.B)); } @@ -1343,8 +1338,10 @@ namespace Ink_Canvas catch { } stylusPoints.Add(stylusPoint); - s = new Stroke(stylusPoints.Clone()); - s.DrawingAttributes = stroke.DrawingAttributes; + s = new Stroke(stylusPoints.Clone()) + { + DrawingAttributes = stroke.DrawingAttributes + }; InkCanvasForInkReplay.Strokes.Add(s); }); } @@ -1378,8 +1375,10 @@ namespace Ink_Canvas catch { } stylusPoints.Add(stylusPoint); - s = new Stroke(stylusPoints.Clone()); - s.DrawingAttributes = stroke.DrawingAttributes; + s = new Stroke(stylusPoints.Clone()) + { + DrawingAttributes = stroke.DrawingAttributes + }; InkCanvasForInkReplay.Strokes.Add(s); }); } @@ -1507,8 +1506,8 @@ namespace Ink_Canvas private void SymbolIconTools_MouseUp(object sender, MouseButtonEventArgs e) { - if (lastBorderMouseDownObject != null && lastBorderMouseDownObject is Panel) - ((Panel)lastBorderMouseDownObject).Background = new SolidColorBrush(Colors.Transparent); + if (lastBorderMouseDownObject is Panel panel) + panel.Background = new SolidColorBrush(Colors.Transparent); if (sender == ToolsFloatingBarBtn && lastBorderMouseDownObject != ToolsFloatingBarBtn) return; if (BorderTools.Visibility == Visibility.Visible) @@ -1679,9 +1678,9 @@ namespace Ink_Canvas { Duration = TimeSpan.FromSeconds(0.35), From = ViewboxFloatingBar.Margin, - To = new Thickness(pos.X, pos.Y, 0, -20) + To = new Thickness(pos.X, pos.Y, 0, -20), + EasingFunction = new CircleEase() }; - marginAnimation.EasingFunction = new CircleEase(); ViewboxFloatingBar.BeginAnimation(MarginProperty, marginAnimation); }); @@ -1784,9 +1783,9 @@ namespace Ink_Canvas { Duration = TimeSpan.FromSeconds(0.35), From = ViewboxFloatingBar.Margin, - To = new Thickness(pos.X, pos.Y, 0, -20) + To = new Thickness(pos.X, pos.Y, 0, -20), + EasingFunction = new CircleEase() }; - marginAnimation.EasingFunction = new CircleEase(); ViewboxFloatingBar.BeginAnimation(MarginProperty, marginAnimation); }); @@ -1882,9 +1881,9 @@ namespace Ink_Canvas { Duration = TimeSpan.FromSeconds(0.35), From = ViewboxFloatingBar.Margin, - To = new Thickness(pos.X, pos.Y, 0, -20) + To = new Thickness(pos.X, pos.Y, 0, -20), + EasingFunction = new CircleEase() }; - marginAnimation.EasingFunction = new CircleEase(); ViewboxFloatingBar.BeginAnimation(MarginProperty, marginAnimation); }); @@ -1917,8 +1916,8 @@ namespace Ink_Canvas internal async void CursorIcon_Click(object sender, RoutedEventArgs e) { - if (lastBorderMouseDownObject != null && lastBorderMouseDownObject is Panel) - ((Panel)lastBorderMouseDownObject).Background = new SolidColorBrush(Colors.Transparent); + if (lastBorderMouseDownObject is Panel panel) + panel.Background = new SolidColorBrush(Colors.Transparent); if (sender == Cursor_Icon && lastBorderMouseDownObject != Cursor_Icon) return; // 禁用高级橡皮擦系统 @@ -2029,8 +2028,8 @@ namespace Ink_Canvas internal void PenIcon_Click(object sender, RoutedEventArgs e) { - if (lastBorderMouseDownObject != null && lastBorderMouseDownObject is Panel) - ((Panel)lastBorderMouseDownObject).Background = new SolidColorBrush(Colors.Transparent); + if (lastBorderMouseDownObject is Panel panel) + panel.Background = new SolidColorBrush(Colors.Transparent); if (sender == Pen_Icon && lastBorderMouseDownObject != Pen_Icon) return; // 如果当前有选中的图片元素,先取消选中 @@ -2372,8 +2371,8 @@ namespace Ink_Canvas private void EraserIconByStrokes_Click(object sender, RoutedEventArgs e) { - if (lastBorderMouseDownObject != null && lastBorderMouseDownObject is Panel) - ((Panel)lastBorderMouseDownObject).Background = new SolidColorBrush(Colors.Transparent); + if (lastBorderMouseDownObject is Panel panel) + panel.Background = new SolidColorBrush(Colors.Transparent); if (sender == EraserByStrokes_Icon && lastBorderMouseDownObject != EraserByStrokes_Icon) return; // 禁用高级橡皮擦系统 @@ -2404,8 +2403,8 @@ namespace Ink_Canvas private void CursorWithDelIcon_Click(object sender, RoutedEventArgs e) { - if (lastBorderMouseDownObject != null && lastBorderMouseDownObject is Panel) - ((Panel)lastBorderMouseDownObject).Background = new SolidColorBrush(Colors.Transparent); + if (lastBorderMouseDownObject is Panel panel) + panel.Background = new SolidColorBrush(Colors.Transparent); if (sender == CursorWithDelFloatingBarBtn && lastBorderMouseDownObject != CursorWithDelFloatingBarBtn) return; SymbolIconDelete_MouseUp(sender, null); @@ -2843,9 +2842,9 @@ namespace Ink_Canvas { From = BorderSettings.RenderTransform.Value.OffsetX - 490, // 滑动距离 To = 0, - Duration = TimeSpan.FromSeconds(0.6) + Duration = TimeSpan.FromSeconds(0.6), + EasingFunction = new CubicEase { EasingMode = EasingMode.EaseOut } }; - slideAnimation.EasingFunction = new CubicEase { EasingMode = EasingMode.EaseOut }; Storyboard.SetTargetProperty(slideAnimation, new PropertyPath("(UIElement.RenderTransform).(TranslateTransform.X)")); diff --git a/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs b/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs index 420fcf53..b9e4b278 100644 --- a/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs +++ b/Ink Canvas/MainWindow_cs/MW_TouchEvents.cs @@ -95,53 +95,43 @@ namespace Ink_Canvas } else if (originalElement is MediaElement originalMedia) { - var clonedMedia = new MediaElement(); - - // 复制媒体属性 - clonedMedia.Source = originalMedia.Source; - clonedMedia.Width = originalMedia.Width; - clonedMedia.Height = originalMedia.Height; - clonedMedia.Name = originalMedia.Name; - clonedMedia.IsHitTestVisible = originalMedia.IsHitTestVisible; - clonedMedia.Focusable = originalMedia.Focusable; + var clonedMedia = new MediaElement + { + Source = originalMedia.Source, + Width = originalMedia.Width, + Height = originalMedia.Height, + Name = originalMedia.Name, + IsHitTestVisible = originalMedia.IsHitTestVisible, + Focusable = originalMedia.Focusable, + RenderTransform = originalMedia.RenderTransform?.Clone() + }; // 复制位置 InkCanvas.SetLeft(clonedMedia, InkCanvas.GetLeft(originalMedia)); InkCanvas.SetTop(clonedMedia, InkCanvas.GetTop(originalMedia)); - // 复制变换 - if (originalMedia.RenderTransform != null) - { - clonedMedia.RenderTransform = originalMedia.RenderTransform.Clone(); - } - return clonedMedia; } else if (originalElement is Border originalBorder) { - var clonedBorder = new Border(); - - // 复制边框属性 - clonedBorder.Width = originalBorder.Width; - clonedBorder.Height = originalBorder.Height; - clonedBorder.Name = originalBorder.Name; - clonedBorder.IsHitTestVisible = originalBorder.IsHitTestVisible; - clonedBorder.Focusable = originalBorder.Focusable; - clonedBorder.Background = originalBorder.Background; - clonedBorder.BorderBrush = originalBorder.BorderBrush; - clonedBorder.BorderThickness = originalBorder.BorderThickness; - clonedBorder.CornerRadius = originalBorder.CornerRadius; + var clonedBorder = new Border + { + Width = originalBorder.Width, + Height = originalBorder.Height, + Name = originalBorder.Name, + IsHitTestVisible = originalBorder.IsHitTestVisible, + Focusable = originalBorder.Focusable, + Background = originalBorder.Background, + BorderBrush = originalBorder.BorderBrush, + BorderThickness = originalBorder.BorderThickness, + CornerRadius = originalBorder.CornerRadius, + RenderTransform = originalBorder.RenderTransform?.Clone() + }; // 复制位置 InkCanvas.SetLeft(clonedBorder, InkCanvas.GetLeft(originalBorder)); InkCanvas.SetTop(clonedBorder, InkCanvas.GetTop(originalBorder)); - // 复制变换 - if (originalBorder.RenderTransform != null) - { - clonedBorder.RenderTransform = originalBorder.RenderTransform.Clone(); - } - return clonedBorder; } } @@ -578,7 +568,7 @@ namespace Ink_Canvas return value; } - private void inkCanvas_PreviewTouchDown(object sender, TouchEventArgs e) + private void InkCanvas_PreviewTouchDown(object sender, TouchEventArgs e) { inkCanvas.CaptureTouch(e.TouchDevice); ViewboxFloatingBar.IsHitTestVisible = false; @@ -605,11 +595,11 @@ namespace Ink_Canvas } } - private void inkCanvas_PreviewTouchMove(object sender, TouchEventArgs e) + private void InkCanvas_PreviewTouchMove(object sender, TouchEventArgs e) { } - private void inkCanvas_PreviewTouchUp(object sender, TouchEventArgs e) + private void InkCanvas_PreviewTouchUp(object sender, TouchEventArgs e) { inkCanvas.ReleaseAllTouchCaptures(); ViewboxFloatingBar.IsHitTestVisible = true; @@ -691,12 +681,12 @@ namespace Ink_Canvas } } - private void inkCanvas_ManipulationStarting(object sender, ManipulationStartingEventArgs e) + private void InkCanvas_ManipulationStarting(object sender, ManipulationStartingEventArgs e) { e.Mode = ManipulationModes.All; } - private void inkCanvas_ManipulationInertiaStarting(object sender, ManipulationInertiaStartingEventArgs e) { } + private void InkCanvas_ManipulationInertiaStarting(object sender, ManipulationInertiaStartingEventArgs e) { } private void Main_Grid_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e) { @@ -867,8 +857,7 @@ namespace Ink_Canvas try { // 获取图片的RenderTransform,如果不存在则创建新的TransformGroup - TransformGroup transformGroup = image.RenderTransform as TransformGroup; - if (transformGroup == null) + if (!(image.RenderTransform is TransformGroup transformGroup)) { transformGroup = new TransformGroup(); image.RenderTransform = transformGroup; @@ -892,8 +881,7 @@ namespace Ink_Canvas try { // 获取媒体元素的RenderTransform,如果不存在则创建新的TransformGroup - TransformGroup transformGroup = mediaElement.RenderTransform as TransformGroup; - if (transformGroup == null) + if (!(mediaElement.RenderTransform is TransformGroup transformGroup)) { transformGroup = new TransformGroup(); mediaElement.RenderTransform = transformGroup;