将浮动工具栏使用新控件

This commit is contained in:
PrefacedCorg
2026-04-11 12:44:40 +08:00
parent dba59b92ac
commit a7fe7937a5
4 changed files with 86 additions and 189 deletions
+25 -117
View File
@@ -7351,52 +7351,16 @@
</Canvas> </Canvas>
<ikw:SimpleStackPanel Margin="2,0" Name="StackPanelFloatingBar" Orientation="Horizontal" Cursor="Arrow" HorizontalAlignment="Left"> <ikw:SimpleStackPanel Margin="2,0" Name="StackPanelFloatingBar" Orientation="Horizontal" Cursor="Arrow" HorizontalAlignment="Left">
<!--<ikw:SimpleStackPanel Name="Cursor_Icon" MouseDown="Border_MouseDown" MouseUp="CursorIcon_Click"--> <!--<ikw:SimpleStackPanel Name="Cursor_Icon" MouseDown="Border_MouseDown" MouseUp="CursorIcon_Click"-->
<ikw:SimpleStackPanel Name="Cursor_Icon" <controls:ToolbarImageButton x:Name="Cursor_Icon"
MouseDown="FloatingBarToolBtnMouseDownFeedback_Panel" ButtonMouseDown="FloatingBarToolBtnMouseDownFeedback_Panel"
MouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel" ButtonMouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel"
MouseUp="CursorIcon_Click" ButtonMouseUp="CursorIcon_Click"
Background="Transparent" Orientation="Vertical" Label="{i18n:I18n Key=FloatingBar_Mouse}" />
HorizontalAlignment="Center" Width="28" Margin="0,-2"> <controls:ToolbarImageButton x:Name="Pen_Icon"
<Image RenderOptions.BitmapScalingMode="HighQuality" Height="17" Margin="0,3,0,0" ButtonMouseDown="FloatingBarToolBtnMouseDownFeedback_Panel"
x:Name="CursorToolbarIconImage"> ButtonMouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel"
<Image.Source> ButtonMouseUp="PenIcon_Click"
<DrawingImage> Label="{i18n:I18n Key=FloatingBar_Annotate}" />
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V24 H24 V0 H0 Z">
<GeometryDrawing x:Name="CursorIconGeometry" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
<TextBlock x:Name="SelectionToolBarTextBlock" Text="{i18n:I18n Key=FloatingBar_Mouse}" Foreground="{DynamicResource FloatBarForeground}"
FontSize="8"
Margin="0,1,0,0" TextAlignment="Center"
Style="{StaticResource AutoFitMainToolbarLabel8}" />
</ikw:SimpleStackPanel>
<ikw:SimpleStackPanel Name="Pen_Icon"
MouseDown="FloatingBarToolBtnMouseDownFeedback_Panel"
MouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel"
MouseUp="PenIcon_Click"
Background="Transparent" Orientation="Vertical"
HorizontalAlignment="Center" Width="28" Margin="0,-2">
<Image x:Name="PenIcon"
RenderOptions.BitmapScalingMode="HighQuality" Height="17" Margin="0,3,0,0">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V24 H24 V0 H0 Z">
<GeometryDrawing x:Name="PenIconGeometry" Brush="{DynamicResource IconForeground}"
Geometry="" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
<TextBlock x:Name="PenToolbarTextBlock" Text="{i18n:I18n Key=FloatingBar_Annotate}" Foreground="{DynamicResource FloatBarForeground}" FontSize="8"
Margin="0,1,0,0" TextAlignment="Center"
Style="{StaticResource AutoFitMainToolbarLabel8}" />
</ikw:SimpleStackPanel>
<!-- 快捷调色盘 - 双行显示模式 --> <!-- 快捷调色盘 - 双行显示模式 -->
<ikw:SimpleStackPanel Name="QuickColorPalettePanel" <ikw:SimpleStackPanel Name="QuickColorPalettePanel"
@@ -8798,77 +8762,21 @@
</Grid> </Grid>
</ikw:SimpleStackPanel> </ikw:SimpleStackPanel>
<ikw:SimpleStackPanel Name="Eraser_Icon" <controls:ToolbarImageButton x:Name="Eraser_Icon"
MouseDown="FloatingBarToolBtnMouseDownFeedback_Panel" ButtonMouseDown="FloatingBarToolBtnMouseDownFeedback_Panel"
MouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel" ButtonMouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel"
MouseUp="EraserIcon_Click" ButtonMouseUp="EraserIcon_Click"
Background="Transparent" Orientation="Vertical" Label="{i18n:I18n Key=FloatingBar_AreaEraser}" />
HorizontalAlignment="Center" Margin="0,-2" Width="28"> <controls:ToolbarImageButton x:Name="EraserByStrokes_Icon"
<Image x:Name="CircleEraserToolbarIconImage" ButtonMouseDown="FloatingBarToolBtnMouseDownFeedback_Panel"
RenderOptions.BitmapScalingMode="HighQuality" Height="17" ButtonMouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel"
Margin="0,3,0,0"> ButtonMouseUp="EraserIconByStrokes_Click"
<Image.Source> Label="{i18n:I18n Key=FloatingBar_StrokeEraser}" />
<DrawingImage> <controls:ToolbarImageButton x:Name="SymbolIconSelect"
<DrawingImage.Drawing> ButtonMouseDown="FloatingBarToolBtnMouseDownFeedback_Panel"
<DrawingGroup ClipGeometry="M0,0 V24 H24 V0 H0 Z"> ButtonMouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel"
<GeometryDrawing x:Name="CircleEraserIconGeometry" ButtonMouseUp="SymbolIconSelect_MouseUp"
Geometry="" /> Label="{i18n:I18n Key=FloatingBar_LassoSelect}" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
<TextBlock x:Name="CircleEraserToolbarTextBlock" Text="{i18n:I18n Key=FloatingBar_AreaEraser}" Foreground="{DynamicResource FloatBarForeground}"
FontSize="8" Margin="0,1,0,0" TextAlignment="Center"
Style="{StaticResource AutoFitMainToolbarLabel8}" />
</ikw:SimpleStackPanel>
<ikw:SimpleStackPanel Name="EraserByStrokes_Icon"
MouseDown="FloatingBarToolBtnMouseDownFeedback_Panel"
MouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel"
MouseUp="EraserIconByStrokes_Click"
Background="Transparent" Orientation="Vertical" Width="28"
Margin="0,-2" HorizontalAlignment="Center">
<Image x:Name="StrokeEraserToolbarIconImage"
RenderOptions.BitmapScalingMode="HighQuality" Height="17"
Margin="0,3,0,0">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V24 H24 V0 H0 Z">
<GeometryDrawing x:Name="StrokeEraserIconGeometry"
Geometry="" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
<TextBlock x:Name="InkEraserToolbarTextBlock" Text="{i18n:I18n Key=FloatingBar_StrokeEraser}" Foreground="{DynamicResource FloatBarForeground}"
FontSize="8" Margin="0,1,0,0" TextAlignment="Center"
Style="{StaticResource AutoFitMainToolbarLabel8}" />
</ikw:SimpleStackPanel>
<ikw:SimpleStackPanel Name="SymbolIconSelect"
MouseDown="FloatingBarToolBtnMouseDownFeedback_Panel"
MouseLeave="FloatingBarToolBtnMouseLeaveFeedback_Panel"
MouseUp="SymbolIconSelect_MouseUp" Background="Transparent"
Orientation="Vertical" Margin="0,-2" Width="28"
HorizontalAlignment="Center">
<Image x:Name="LassoSelect" RenderOptions.BitmapScalingMode="HighQuality"
Height="17" Margin="0,3,0,0">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V24 H24 V0 H0 Z">
<GeometryDrawing x:Name="LassoSelectIconGeometry"
Geometry="" />
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
<TextBlock x:Name="LassoToolToolbarTextBlock" Text="{i18n:I18n Key=FloatingBar_LassoSelect}" Foreground="{DynamicResource FloatBarForeground}"
FontSize="8" Margin="0,1,0,0" TextAlignment="Center"
Style="{StaticResource AutoFitMainToolbarLabel8}" />
</ikw:SimpleStackPanel>
<ikw:SimpleStackPanel <ikw:SimpleStackPanel
Name="ShapeDrawFloatingBarBtn" Name="ShapeDrawFloatingBarBtn"
MouseDown="FloatingBarToolBtnMouseDownFeedback_Panel" MouseDown="FloatingBarToolBtnMouseDownFeedback_Panel"
+30 -30
View File
@@ -286,48 +286,48 @@ namespace Ink_Canvas
switch (_currentToolMode) switch (_currentToolMode)
{ {
case "cursor": case "cursor":
CursorIconGeometry.Brush = new SolidColorBrush(selectedColor); Cursor_Icon.Icon.Brush = new SolidColorBrush(selectedColor);
PenIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Pen_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
StrokeEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); EraserByStrokes_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
CircleEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Eraser_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
LassoSelectIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); SymbolIconSelect.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
break; break;
case "pen": case "pen":
case "color": case "color":
CursorIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Cursor_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
PenIconGeometry.Brush = new SolidColorBrush(selectedColor); Pen_Icon.Icon.Brush = new SolidColorBrush(selectedColor);
StrokeEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); EraserByStrokes_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
CircleEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Eraser_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
LassoSelectIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); SymbolIconSelect.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
break; break;
case "eraser": case "eraser":
CursorIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Cursor_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
PenIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Pen_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
StrokeEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); EraserByStrokes_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
CircleEraserIconGeometry.Brush = new SolidColorBrush(selectedColor); Eraser_Icon.Icon.Brush = new SolidColorBrush(selectedColor);
LassoSelectIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); SymbolIconSelect.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
break; break;
case "eraserByStrokes": case "eraserByStrokes":
CursorIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Cursor_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
PenIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Pen_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
StrokeEraserIconGeometry.Brush = new SolidColorBrush(selectedColor); EraserByStrokes_Icon.Icon.Brush = new SolidColorBrush(selectedColor);
CircleEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Eraser_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
LassoSelectIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); SymbolIconSelect.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
break; break;
case "select": case "select":
CursorIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Cursor_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
PenIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Pen_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
StrokeEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); EraserByStrokes_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
CircleEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Eraser_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
LassoSelectIconGeometry.Brush = new SolidColorBrush(selectedColor); SymbolIconSelect.Icon.Brush = new SolidColorBrush(selectedColor);
break; break;
default: default:
// 默认情况,所有按钮都使用主题颜色 // 默认情况,所有按钮都使用主题颜色
CursorIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Cursor_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
PenIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Pen_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
StrokeEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); EraserByStrokes_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
CircleEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Eraser_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
LassoSelectIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); SymbolIconSelect.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
break; break;
} }
} }
+21 -32
View File
@@ -441,18 +441,18 @@ namespace Ink_Canvas
{ {
if (mode != "clear") if (mode != "clear")
{ {
CursorIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Cursor_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
CursorIconGeometry.Geometry = Geometry.Parse(GetCorrectIcon("cursor", false)); Cursor_Icon.Icon.Geometry = Geometry.Parse(GetCorrectIcon("cursor", false));
PenIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Pen_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
PenIconGeometry.Geometry = Geometry.Parse(GetCorrectIcon("pen", false)); Pen_Icon.Icon.Geometry = Geometry.Parse(GetCorrectIcon("pen", false));
StrokeEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); EraserByStrokes_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
StrokeEraserIconGeometry.Geometry = EraserByStrokes_Icon.Icon.Geometry =
Geometry.Parse(GetCorrectIcon("eraserStroke", false)); Geometry.Parse(GetCorrectIcon("eraserStroke", false));
CircleEraserIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); Eraser_Icon.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
CircleEraserIconGeometry.Geometry = Eraser_Icon.Icon.Geometry =
Geometry.Parse(GetCorrectIcon("eraserCircle", false)); Geometry.Parse(GetCorrectIcon("eraserCircle", false));
LassoSelectIconGeometry.Brush = new SolidColorBrush(FloatBarForegroundColor); SymbolIconSelect.Icon.Brush = new SolidColorBrush(FloatBarForegroundColor);
LassoSelectIconGeometry.Geometry = Geometry.Parse(GetCorrectIcon("lassoSelect", false)); SymbolIconSelect.Icon.Geometry = Geometry.Parse(GetCorrectIcon("lassoSelect", false));
bool isDarkThemeForButtons = Settings.Appearance.Theme == 1 || bool isDarkThemeForButtons = Settings.Appearance.Theme == 1 ||
(Settings.Appearance.Theme == 2 && !IsSystemThemeLight()); (Settings.Appearance.Theme == 2 && !IsSystemThemeLight());
@@ -509,8 +509,8 @@ namespace Ink_Canvas
case "pen": case "pen":
case "color": case "color":
{ {
PenIconGeometry.Brush = new SolidColorBrush(highlightColor); Pen_Icon.Icon.Brush = new SolidColorBrush(highlightColor);
PenIconGeometry.Geometry = Geometry.Parse(GetCorrectIcon("pen", true)); Pen_Icon.Icon.Geometry = Geometry.Parse(GetCorrectIcon("pen", true));
BoardPen.Background = new SolidColorBrush(Color.FromRgb(37, 99, 235)); BoardPen.Background = new SolidColorBrush(Color.FromRgb(37, 99, 235));
BoardPen.BorderBrush = new SolidColorBrush(Color.FromRgb(37, 99, 235)); BoardPen.BorderBrush = new SolidColorBrush(Color.FromRgb(37, 99, 235));
BoardPenGeometry.Brush = new SolidColorBrush(Colors.GhostWhite); BoardPenGeometry.Brush = new SolidColorBrush(Colors.GhostWhite);
@@ -521,8 +521,8 @@ namespace Ink_Canvas
} }
case "eraser": case "eraser":
{ {
CircleEraserIconGeometry.Brush = new SolidColorBrush(highlightColor); Eraser_Icon.Icon.Brush = new SolidColorBrush(highlightColor);
CircleEraserIconGeometry.Geometry = Eraser_Icon.Icon.Geometry =
Geometry.Parse(GetCorrectIcon("eraserCircle", true)); Geometry.Parse(GetCorrectIcon("eraserCircle", true));
BoardEraser.Background = new SolidColorBrush(Color.FromRgb(37, 99, 235)); BoardEraser.Background = new SolidColorBrush(Color.FromRgb(37, 99, 235));
BoardEraser.BorderBrush = new SolidColorBrush(Color.FromRgb(37, 99, 235)); BoardEraser.BorderBrush = new SolidColorBrush(Color.FromRgb(37, 99, 235));
@@ -534,8 +534,8 @@ namespace Ink_Canvas
} }
case "eraserByStrokes": case "eraserByStrokes":
{ {
StrokeEraserIconGeometry.Brush = new SolidColorBrush(highlightColor); EraserByStrokes_Icon.Icon.Brush = new SolidColorBrush(highlightColor);
StrokeEraserIconGeometry.Geometry = EraserByStrokes_Icon.Icon.Geometry =
Geometry.Parse(GetCorrectIcon("eraserStroke", true)); Geometry.Parse(GetCorrectIcon("eraserStroke", true));
BoardEraser.Background = new SolidColorBrush(Color.FromRgb(37, 99, 235)); BoardEraser.Background = new SolidColorBrush(Color.FromRgb(37, 99, 235));
BoardEraser.BorderBrush = new SolidColorBrush(Color.FromRgb(37, 99, 235)); BoardEraser.BorderBrush = new SolidColorBrush(Color.FromRgb(37, 99, 235));
@@ -547,8 +547,8 @@ namespace Ink_Canvas
} }
case "select": case "select":
{ {
LassoSelectIconGeometry.Brush = new SolidColorBrush(highlightColor); SymbolIconSelect.Icon.Brush = new SolidColorBrush(highlightColor);
LassoSelectIconGeometry.Geometry = SymbolIconSelect.Icon.Geometry =
Geometry.Parse(GetCorrectIcon("lassoSelect", true)); Geometry.Parse(GetCorrectIcon("lassoSelect", true));
BoardSelect.Background = new SolidColorBrush(Color.FromRgb(37, 99, 235)); BoardSelect.Background = new SolidColorBrush(Color.FromRgb(37, 99, 235));
BoardSelect.BorderBrush = new SolidColorBrush(Color.FromRgb(37, 99, 235)); BoardSelect.BorderBrush = new SolidColorBrush(Color.FromRgb(37, 99, 235));
@@ -560,8 +560,8 @@ namespace Ink_Canvas
} }
case "cursor": case "cursor":
{ {
CursorIconGeometry.Brush = new SolidColorBrush(highlightColor); Cursor_Icon.Icon.Brush = new SolidColorBrush(highlightColor);
CursorIconGeometry.Geometry = Cursor_Icon.Icon.Geometry =
Geometry.Parse(GetCorrectIcon("cursor", true)); Geometry.Parse(GetCorrectIcon("cursor", true));
bool isDarkThemeForCursor = Settings.Appearance.Theme == 1 || bool isDarkThemeForCursor = Settings.Appearance.Theme == 1 ||
(Settings.Appearance.Theme == 2 && !IsSystemThemeLight()); (Settings.Appearance.Theme == 2 && !IsSystemThemeLight());
@@ -999,12 +999,11 @@ namespace Ink_Canvas
/// </summary> /// </summary>
/// <param name="sender">发送者</param> /// <param name="sender">发送者</param>
/// <param name="e">鼠标按钮事件参数</param> /// <param name="e">鼠标按钮事件参数</param>
internal void SymbolIconSelect_MouseUp(object sender, MouseButtonEventArgs e) internal void SymbolIconSelect_MouseUp(object sender, RoutedEventArgs e)
{ {
if (lastBorderMouseDownObject is Panel panel) if (lastBorderMouseDownObject is Panel panel)
panel.Background = new SolidColorBrush(Colors.Transparent); panel.Background = new SolidColorBrush(Colors.Transparent);
if (sender == SymbolIconSelect && lastBorderMouseDownObject != SymbolIconSelect) return;
BtnSelect_Click(null, null); BtnSelect_Click(null, null);
@@ -1033,10 +1032,8 @@ namespace Ink_Canvas
else if (sender is Border border) else if (sender is Border border)
{ {
lastBorderMouseDownObject = sender; lastBorderMouseDownObject = sender;
// 对于快捷调色板的颜色球,不改变背景颜色,只添加透明度效果
if (border.Name?.StartsWith("QuickColor") == true) if (border.Name?.StartsWith("QuickColor") == true)
{ {
// 保存原始颜色并添加透明度
if (border.Background is SolidColorBrush originalColor) if (border.Background is SolidColorBrush originalColor)
{ {
border.Background = new SolidColorBrush(Color.FromArgb(180, originalColor.Color.R, originalColor.Color.G, originalColor.Color.B)); border.Background = new SolidColorBrush(Color.FromArgb(180, originalColor.Color.R, originalColor.Color.G, originalColor.Color.B));
@@ -2146,7 +2143,6 @@ namespace Ink_Canvas
{ {
if (lastBorderMouseDownObject is Panel panel) if (lastBorderMouseDownObject is Panel panel)
panel.Background = new SolidColorBrush(Colors.Transparent); panel.Background = new SolidColorBrush(Colors.Transparent);
if (sender == Cursor_Icon && lastBorderMouseDownObject != Cursor_Icon) return;
// 禁用高级橡皮擦系统 // 禁用高级橡皮擦系统
DisableEraserOverlay(); DisableEraserOverlay();
@@ -2260,10 +2256,8 @@ namespace Ink_Canvas
/// <param name="e">路由事件参数</param> /// <param name="e">路由事件参数</param>
internal void PenIcon_Click(object sender, RoutedEventArgs e) internal void PenIcon_Click(object sender, RoutedEventArgs e)
{ {
if (lastBorderMouseDownObject is Panel panel) if (lastBorderMouseDownObject is Panel panel)
panel.Background = new SolidColorBrush(Colors.Transparent); panel.Background = new SolidColorBrush(Colors.Transparent);
if (sender == Pen_Icon && lastBorderMouseDownObject != Pen_Icon) return;
// 如果当前有选中的图片元素,先取消选中 // 如果当前有选中的图片元素,先取消选中
if (currentSelectedElement != null) if (currentSelectedElement != null)
@@ -2617,11 +2611,6 @@ namespace Ink_Canvas
/// <param name="e">路由事件参数</param> /// <param name="e">路由事件参数</param>
private void EraserIconByStrokes_Click(object sender, RoutedEventArgs e) private void EraserIconByStrokes_Click(object sender, RoutedEventArgs e)
{ {
if (lastBorderMouseDownObject is Panel panel)
panel.Background = new SolidColorBrush(Colors.Transparent);
if (sender == EraserByStrokes_Icon && lastBorderMouseDownObject != EraserByStrokes_Icon) return;
// 禁用高级橡皮擦系统 // 禁用高级橡皮擦系统
DisableEraserOverlay(); DisableEraserOverlay();
+10 -10
View File
@@ -4730,54 +4730,54 @@ namespace Ink_Canvas
if (Settings.Appearance.UseLegacyFloatingBarUI) if (Settings.Appearance.UseLegacyFloatingBarUI)
{ {
CursorIconGeometry.Geometry = Geometry.Parse( Cursor_Icon.Icon.Geometry = Geometry.Parse(
isCursorSolid isCursorSolid
? XamlGraphicsIconGeometries.LegacySolidCursorIcon ? XamlGraphicsIconGeometries.LegacySolidCursorIcon
: XamlGraphicsIconGeometries.LegacyLinedCursorIcon); : XamlGraphicsIconGeometries.LegacyLinedCursorIcon);
PenIconGeometry.Geometry = Geometry.Parse( Pen_Icon.Icon.Geometry = Geometry.Parse(
isPenSolid isPenSolid
? XamlGraphicsIconGeometries.LegacySolidPenIcon ? XamlGraphicsIconGeometries.LegacySolidPenIcon
: XamlGraphicsIconGeometries.LegacyLinedPenIcon); : XamlGraphicsIconGeometries.LegacyLinedPenIcon);
StrokeEraserIconGeometry.Geometry = Geometry.Parse( EraserByStrokes_Icon.Icon.Geometry = Geometry.Parse(
isStrokeEraserSolid isStrokeEraserSolid
? XamlGraphicsIconGeometries.LegacySolidEraserStrokeIcon ? XamlGraphicsIconGeometries.LegacySolidEraserStrokeIcon
: XamlGraphicsIconGeometries.LegacyLinedEraserStrokeIcon); : XamlGraphicsIconGeometries.LegacyLinedEraserStrokeIcon);
CircleEraserIconGeometry.Geometry = Geometry.Parse( Eraser_Icon.Icon.Geometry = Geometry.Parse(
isCircleEraserSolid isCircleEraserSolid
? XamlGraphicsIconGeometries.LegacySolidEraserCircleIcon ? XamlGraphicsIconGeometries.LegacySolidEraserCircleIcon
: XamlGraphicsIconGeometries.LegacyLinedEraserCircleIcon); : XamlGraphicsIconGeometries.LegacyLinedEraserCircleIcon);
LassoSelectIconGeometry.Geometry = Geometry.Parse( SymbolIconSelect.Icon.Geometry = Geometry.Parse(
isLassoSolid isLassoSolid
? XamlGraphicsIconGeometries.LegacySolidLassoSelectIcon ? XamlGraphicsIconGeometries.LegacySolidLassoSelectIcon
: XamlGraphicsIconGeometries.LegacyLinedLassoSelectIcon); : XamlGraphicsIconGeometries.LegacyLinedLassoSelectIcon);
} }
else else
{ {
CursorIconGeometry.Geometry = Geometry.Parse( Cursor_Icon.Icon.Geometry = Geometry.Parse(
isCursorSolid isCursorSolid
? XamlGraphicsIconGeometries.SolidCursorIcon ? XamlGraphicsIconGeometries.SolidCursorIcon
: XamlGraphicsIconGeometries.LinedCursorIcon); : XamlGraphicsIconGeometries.LinedCursorIcon);
PenIconGeometry.Geometry = Geometry.Parse( Pen_Icon.Icon.Geometry = Geometry.Parse(
isPenSolid isPenSolid
? XamlGraphicsIconGeometries.SolidPenIcon ? XamlGraphicsIconGeometries.SolidPenIcon
: XamlGraphicsIconGeometries.LinedPenIcon); : XamlGraphicsIconGeometries.LinedPenIcon);
StrokeEraserIconGeometry.Geometry = Geometry.Parse( EraserByStrokes_Icon.Icon.Geometry = Geometry.Parse(
isStrokeEraserSolid isStrokeEraserSolid
? XamlGraphicsIconGeometries.SolidEraserStrokeIcon ? XamlGraphicsIconGeometries.SolidEraserStrokeIcon
: XamlGraphicsIconGeometries.LinedEraserStrokeIcon); : XamlGraphicsIconGeometries.LinedEraserStrokeIcon);
CircleEraserIconGeometry.Geometry = Geometry.Parse( Eraser_Icon.Icon.Geometry = Geometry.Parse(
isCircleEraserSolid isCircleEraserSolid
? XamlGraphicsIconGeometries.SolidEraserCircleIcon ? XamlGraphicsIconGeometries.SolidEraserCircleIcon
: XamlGraphicsIconGeometries.LinedEraserCircleIcon); : XamlGraphicsIconGeometries.LinedEraserCircleIcon);
LassoSelectIconGeometry.Geometry = Geometry.Parse( SymbolIconSelect.Icon.Geometry = Geometry.Parse(
isLassoSolid isLassoSolid
? XamlGraphicsIconGeometries.SolidLassoSelectIcon ? XamlGraphicsIconGeometries.SolidLassoSelectIcon
: XamlGraphicsIconGeometries.LinedLassoSelectIcon); : XamlGraphicsIconGeometries.LinedLassoSelectIcon);