From 836e0b0fdea861c63087036301c750076a4fba0c Mon Sep 17 00:00:00 2001
From: PrefacedCorg <1876568293@qq.com>
Date: Sat, 11 Apr 2026 13:42:33 +0800
Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E6=B5=AE=E5=8A=A8=E5=B7=A5=E5=85=B7?=
=?UTF-8?q?=E6=A0=8F=E4=BD=BF=E7=94=A8=E6=96=B0=E6=8E=A7=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controls/ToolbarImageButton.xaml.cs | 12 +
Ink Canvas/MainWindow.xaml | 215 +++---------------
.../MainWindow_cs/MW_FloatingBarIcons.cs | 49 +---
Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs | 8 +-
4 files changed, 56 insertions(+), 228 deletions(-)
diff --git a/Ink Canvas/Controls/ToolbarImageButton.xaml.cs b/Ink Canvas/Controls/ToolbarImageButton.xaml.cs
index 80d0b696..8c52132b 100644
--- a/Ink Canvas/Controls/ToolbarImageButton.xaml.cs
+++ b/Ink Canvas/Controls/ToolbarImageButton.xaml.cs
@@ -57,10 +57,20 @@ namespace Ink_Canvas.Controls
{
InitializeComponent();
ButtonPanel.Background = Brushes.Transparent;
+ IsEnabledChanged += ToolbarImageButton_IsEnabledChanged;
+ }
+
+ private void ToolbarImageButton_IsEnabledChanged(object sender, DependencyPropertyChangedEventArgs e)
+ {
+ var isEnabled = (bool)e.NewValue;
+ ButtonImage.Opacity = isEnabled ? 1.0 : 0.5;
+ LabelTextBlock.Opacity = isEnabled ? 1.0 : 0.5;
+ ButtonPanel.IsEnabled = isEnabled;
}
private void ButtonPanel_MouseDown(object sender, MouseButtonEventArgs e)
{
+ if (!IsEnabled) return;
if (_lastPressedButton != null && _lastPressedButton != this)
{
_lastPressedButton.Background = Brushes.Transparent;
@@ -72,11 +82,13 @@ namespace Ink_Canvas.Controls
private void ButtonPanel_MouseLeave(object sender, MouseEventArgs e)
{
+ if (!IsEnabled) return;
ButtonMouseLeave?.Invoke(this, e);
}
private void ButtonPanel_MouseUp(object sender, MouseButtonEventArgs e)
{
+ if (!IsEnabled) return;
if (_lastPressedButton == this)
{
ButtonPanel.Background = Brushes.Transparent;
diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml
index c051c581..2c2241cb 100644
--- a/Ink Canvas/MainWindow.xaml
+++ b/Ink Canvas/MainWindow.xaml
@@ -7935,28 +7935,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -9271,55 +9169,16 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
/// 发送者
/// 鼠标按钮事件参数
- internal void SymbolIconUndo_MouseUp(object sender, MouseButtonEventArgs e)
+ internal void SymbolIconUndo_MouseUp(object sender, RoutedEventArgs e)
{
- //if (lastBorderMouseDownObject != sender) return;
-
- if (lastBorderMouseDownObject is Panel panel)
- panel.Background = new SolidColorBrush(Colors.Transparent);
- if (sender == SymbolIconUndo && lastBorderMouseDownObject != SymbolIconUndo) return;
-
if (!BtnUndo.IsEnabled) return;
BtnUndo_Click(BtnUndo, null);
HideSubPanels();
@@ -643,14 +637,8 @@ namespace Ink_Canvas
///
/// 发送者
/// 鼠标按钮事件参数
- internal void SymbolIconRedo_MouseUp(object sender, MouseButtonEventArgs e)
+ internal void SymbolIconRedo_MouseUp(object sender, RoutedEventArgs e)
{
- //if (lastBorderMouseDownObject != sender) return;
-
- if (lastBorderMouseDownObject is Panel panel)
- panel.Background = new SolidColorBrush(Colors.Transparent);
- if (sender == SymbolIconRedo && lastBorderMouseDownObject != SymbolIconRedo) return;
-
if (!BtnRedo.IsEnabled) return;
BtnRedo_Click(BtnRedo, null);
HideSubPanels();
@@ -670,13 +658,9 @@ namespace Ink_Canvas
///
/// 发送者
/// 鼠标按钮事件参数
- internal void ImageBlackboard_MouseUp(object sender, MouseButtonEventArgs e)
+ internal void ImageBlackboard_MouseUp(object sender, RoutedEventArgs e)
{
- if (lastBorderMouseDownObject is Panel panel)
- panel.Background = new SolidColorBrush(Colors.Transparent);
- if (sender == WhiteboardFloatingBarBtn && lastBorderMouseDownObject != WhiteboardFloatingBarBtn) return;
-
LeftUnFoldButtonQuickPanel.Visibility = Visibility.Collapsed;
RightUnFoldButtonQuickPanel.Visibility = Visibility.Collapsed;
if (isDisplayingOrHidingBlackboard) return;
@@ -948,13 +932,8 @@ namespace Ink_Canvas
///
/// 发送者
/// 鼠标按钮事件参数
- internal void SymbolIconDelete_MouseUp(object sender, MouseButtonEventArgs e)
+ internal void SymbolIconDelete_MouseUp(object sender, RoutedEventArgs e)
{
-
- if (lastBorderMouseDownObject is Panel panel)
- panel.Background = new SolidColorBrush(Colors.Transparent);
- if (sender == SymbolIconDelete && lastBorderMouseDownObject != SymbolIconDelete) return;
-
if (inkCanvas.GetSelectedStrokes().Count > 0)
{
inkCanvas.Strokes.Remove(inkCanvas.GetSelectedStrokes());
@@ -1026,8 +1005,7 @@ namespace Ink_Canvas
if (sender is Panel panel)
{
lastBorderMouseDownObject = sender;
- if (panel == SymbolIconDelete) panel.Background = new SolidColorBrush(Color.FromArgb(28, 127, 29, 29));
- else panel.Background = new SolidColorBrush(Color.FromArgb(28, 24, 24, 27));
+ panel.Background = new SolidColorBrush(Color.FromArgb(28, 24, 24, 27));
}
else if (sender is Border border)
{
@@ -1724,13 +1702,8 @@ namespace Ink_Canvas
///
/// 发送者
/// 鼠标按钮事件参数
- private void SymbolIconTools_MouseUp(object sender, MouseButtonEventArgs e)
+ private void SymbolIconTools_MouseUp(object sender, RoutedEventArgs e)
{
-
- if (lastBorderMouseDownObject is Panel panel)
- panel.Background = new SolidColorBrush(Colors.Transparent);
- if (sender == ToolsFloatingBarBtn && lastBorderMouseDownObject != ToolsFloatingBarBtn) return;
-
if (BorderTools.Visibility == Visibility.Visible)
{
AnimationsHelper.HideWithSlideAndFade(BorderTools);
@@ -1742,11 +1715,6 @@ namespace Ink_Canvas
AnimationsHelper.ShowWithSlideFromBottomAndFade(BorderTools);
AnimationsHelper.ShowWithSlideFromBottomAndFade(BoardBorderTools);
}
-
- if (sender == ToolsFloatingBarBtn)
- {
- lastBorderMouseDownObject = null;
- }
}
///
@@ -2643,11 +2611,6 @@ namespace Ink_Canvas
/// 路由事件参数
private void CursorWithDelIcon_Click(object sender, RoutedEventArgs e)
{
-
- if (lastBorderMouseDownObject is Panel panel)
- panel.Background = new SolidColorBrush(Colors.Transparent);
- if (sender == CursorWithDelFloatingBarBtn && lastBorderMouseDownObject != CursorWithDelFloatingBarBtn) return;
-
SymbolIconDelete_MouseUp(sender, null);
CursorIcon_Click(null, null);
}
diff --git a/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs b/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs
index 2b09e2e4..d97dffc5 100644
--- a/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs
+++ b/Ink Canvas/MainWindow_cs/MW_ShapeDrawing.cs
@@ -33,14 +33,8 @@ namespace Ink_Canvas
/// 3. 如果形状绘制面板可见,则隐藏它
/// 4. 如果形状绘制面板不可见,则显示它
///
- private void ImageDrawShape_MouseUp(object sender, MouseButtonEventArgs e)
+ private void ImageDrawShape_MouseUp(object sender, RoutedEventArgs e)
{
-
- if (lastBorderMouseDownObject != null && lastBorderMouseDownObject is Panel)
- ((Panel)lastBorderMouseDownObject).Background = new SolidColorBrush(Colors.Transparent);
- if (sender == ShapeDrawFloatingBarBtn && lastBorderMouseDownObject != ShapeDrawFloatingBarBtn) return;
-
- // FloatingBarIcons_MouseUp_New(sender);
if (BorderDrawShape.Visibility == Visibility.Visible)
{
AnimationsHelper.HideWithSlideAndFade(BorderDrawShape);