improve:橡皮图标

This commit is contained in:
2025-07-19 14:34:06 +08:00
parent 8972e42fee
commit 32ef30ebd8
2 changed files with 119 additions and 121 deletions
+106 -4
View File
@@ -8,6 +8,7 @@ using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using Ink_Canvas.Helpers; using Ink_Canvas.Helpers;
using System.Windows.Shapes; using System.Windows.Shapes;
using System.Windows.Media.Imaging;
namespace Ink_Canvas { namespace Ink_Canvas {
public partial class MainWindow : Window { public partial class MainWindow : Window {
@@ -333,13 +334,13 @@ namespace Ink_Canvas {
// 获取或创建橡皮擦视觉反馈Border // 获取或创建橡皮擦视觉反馈Border
if (eraserVisualBorder == null) { if (eraserVisualBorder == null) {
eraserVisualBorder = new Border { eraserVisualBorder = new Border {
Background = new SolidColorBrush(Colors.White), Background = new SolidColorBrush(Colors.Transparent),
BorderBrush = new SolidColorBrush(Colors.Transparent), BorderBrush = new SolidColorBrush(Colors.Transparent),
BorderThickness = new Thickness(0), BorderThickness = new Thickness(0),
IsHitTestVisible = false, IsHitTestVisible = false,
HorizontalAlignment = HorizontalAlignment.Left, HorizontalAlignment = HorizontalAlignment.Left,
VerticalAlignment = VerticalAlignment.Top, VerticalAlignment = VerticalAlignment.Top,
Opacity = 0.8 Opacity = 1
}; };
Panel.SetZIndex(eraserVisualBorder, 1001); Panel.SetZIndex(eraserVisualBorder, 1001);
@@ -355,12 +356,17 @@ namespace Ink_Canvas {
} }
if (eraserVisualBorder != null) { if (eraserVisualBorder != null) {
// 创建橡皮擦视觉反馈
var eraserImage = CreateEraserVisualImage();
// 清除Border的内容并添加新的图像
eraserVisualBorder.Child = eraserImage;
// 更新橡皮擦位置和大小 // 更新橡皮擦位置和大小
if (isCurrentEraserCircle) { if (isCurrentEraserCircle) {
var radius = currentEraserSize / 2; var radius = currentEraserSize / 2;
eraserVisualBorder.Width = currentEraserSize; eraserVisualBorder.Width = currentEraserSize;
eraserVisualBorder.Height = currentEraserSize; eraserVisualBorder.Height = currentEraserSize;
eraserVisualBorder.CornerRadius = new CornerRadius(radius);
// 使用Margin来定位,因为Border在Grid中 // 使用Margin来定位,因为Border在Grid中
eraserVisualBorder.Margin = new Thickness( eraserVisualBorder.Margin = new Thickness(
@@ -372,7 +378,6 @@ namespace Ink_Canvas {
var height = currentEraserSize / 0.6; var height = currentEraserSize / 0.6;
eraserVisualBorder.Width = currentEraserSize; eraserVisualBorder.Width = currentEraserSize;
eraserVisualBorder.Height = height; eraserVisualBorder.Height = height;
eraserVisualBorder.CornerRadius = new CornerRadius(0);
// 使用Margin来定位,因为Border在Grid中 // 使用Margin来定位,因为Border在Grid中
eraserVisualBorder.Margin = new Thickness( eraserVisualBorder.Margin = new Thickness(
@@ -389,6 +394,103 @@ namespace Ink_Canvas {
} }
} }
/// <summary>
/// 创建橡皮擦视觉图像
/// </summary>
private Image CreateEraserVisualImage() {
try {
// 根据橡皮擦形状选择对应的DrawingGroup资源
string resourceKey = isCurrentEraserCircle ? "EraserCircleDrawingGroup" : "EraserDrawingGroup";
// 尝试从资源字典中获取DrawingGroup
var drawingGroup = this.TryFindResource(resourceKey) as DrawingGroup;
if (drawingGroup == null) {
// 如果找不到资源,创建默认的橡皮擦图像
return CreateDefaultEraserImage();
}
// 创建变换后的DrawingGroup
var transformedGroup = new DrawingGroup();
transformedGroup.Children.Add(drawingGroup);
// 应用缩放变换
var transform = new ScaleTransform();
if (isCurrentEraserCircle) {
var scale = currentEraserSize / 56.0; // 基于56x56的基准尺寸
transform.ScaleX = scale;
transform.ScaleY = scale;
} else {
var scaleX = currentEraserSize / 38.0;
var scaleY = (currentEraserSize / 0.6) / 56.0;
transform.ScaleX = scaleX;
transform.ScaleY = scaleY;
}
transformedGroup.Transform = transform;
// 创建DrawingImage
var drawingImage = new DrawingImage(transformedGroup);
// 创建Image控件
var image = new Image {
Source = drawingImage,
Stretch = Stretch.None
};
RenderOptions.SetBitmapScalingMode(image, BitmapScalingMode.HighQuality);
return image;
} catch (Exception ex) {
Trace.WriteLine($"Advanced Eraser: Error creating eraser visual image - {ex.Message}");
return CreateDefaultEraserImage();
}
}
/// <summary>
/// 创建默认的橡皮擦图像(当资源不可用时)
/// </summary>
private Image CreateDefaultEraserImage() {
try {
// 创建一个简单的几何图形作为默认橡皮擦
Geometry geometry;
if (isCurrentEraserCircle) {
geometry = new EllipseGeometry(new Point(28, 28), 28, 28);
} else {
geometry = new RectangleGeometry(new Rect(0, 0, 38, 56));
}
var brush = new SolidColorBrush(Colors.LightGray);
var pen = new Pen(new SolidColorBrush(Colors.DarkGray), 1);
var geometryDrawing = new GeometryDrawing(brush, pen, geometry);
var drawingGroup = new DrawingGroup();
drawingGroup.Children.Add(geometryDrawing);
// 应用缩放变换
var transform = new ScaleTransform();
if (isCurrentEraserCircle) {
var scale = currentEraserSize / 56.0;
transform.ScaleX = scale;
transform.ScaleY = scale;
} else {
var scaleX = currentEraserSize / 38.0;
var scaleY = (currentEraserSize / 0.6) / 56.0;
transform.ScaleX = scaleX;
transform.ScaleY = scaleY;
}
drawingGroup.Transform = transform;
var drawingImage = new DrawingImage(drawingGroup);
var image = new Image {
Source = drawingImage,
Stretch = Stretch.None
};
return image;
} catch (Exception ex) {
Trace.WriteLine($"Advanced Eraser: Error creating default eraser image - {ex.Message}");
return null;
}
}
/// <summary> /// <summary>
/// 兼容性方法:旧版橡皮擦几何碰撞处理 /// 兼容性方法:旧版橡皮擦几何碰撞处理
/// </summary> /// </summary>
+13 -117
View File
@@ -1,140 +1,36 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- 新版矩形橡皮擦 - 更现代的设计 -->
<DrawingGroup x:Key="EraserDrawingGroup" ClipGeometry="M0,0 V56 H38 V0 H0 Z"> <DrawingGroup x:Key="EraserDrawingGroup" ClipGeometry="M0,0 V56 H38 V0 H0 Z">
<!-- 主体背景 - 使用渐变效果 --> <GeometryDrawing Brush="#FFF2EEEB" Geometry="F1 M38,56z M0,0z M0,4C0,1.79086,1.79086,0,4,0L34,0C36.2091,0,38,1.79086,38,4L38,52C38,54.2091,36.2091,56,34,56L4,56C1.79086,56,0,54.2091,0,52L0,4z" />
<GeometryDrawing Geometry="F1 M38,56z M0,0z M0,4C0,1.79086,1.79086,0,4,0L34,0C36.2091,0,38,1.79086,38,4L38,52C38,54.2091,36.2091,56,34,56L4,56C1.79086,56,0,54.2091,0,52L0,4z"> <GeometryDrawing Brush="#FFCDCDCD" Geometry="F0 M38,56z M0,0z M34,1L4,1C2.34315,1,1,2.34315,1,4L1,52C1,53.6569,2.34315,55,4,55L34,55C35.6569,55,37,53.6569,37,52L37,4C37,2.34315,35.6569,1,34,1z M4,0C1.79086,0,0,1.79086,0,4L0,52C0,54.2091,1.79086,56,4,56L34,56C36.2091,56,38,54.2091,38,52L38,4C38,1.79086,36.2091,0,34,0L4,0z" />
<GeometryDrawing.Brush> <GeometryDrawing Brush="#FFD1CFCD" Geometry="F1 M38,56z M0,0z M12,19.5C12,18.1193,13.1193,17,14.5,17L14.5,17C15.8807,17,17,18.1193,17,19.5L17,36.5C17,37.8807,15.8807,39,14.5,39L14.5,39C13.1193,39,12,37.8807,12,36.5L12,19.5z" />
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="#FFF8F6F4" Offset="0"/>
<GradientStop Color="#FFE8E4E0" Offset="1"/>
</LinearGradientBrush>
</GeometryDrawing.Brush>
</GeometryDrawing>
<!-- 边框 - 更精细的边框设计 -->
<GeometryDrawing Geometry="F0 M38,56z M0,0z M34,1L4,1C2.34315,1,1,2.34315,1,4L1,52C1,53.6569,2.34315,55,4,55L34,55C35.6569,55,37,53.6569,37,52L37,4C37,2.34315,35.6569,1,34,1z M4,0C1.79086,0,0,1.79086,0,4L0,52C0,54.2091,1.79086,56,4,56L34,56C36.2091,56,38,54.2091,38,52L38,4C38,1.79086,36.2091,0,34,0L4,0z">
<GeometryDrawing.Brush>
<SolidColorBrush Color="#FFB8B4B0" Opacity="0.8"/>
</GeometryDrawing.Brush>
</GeometryDrawing>
<!-- 左侧纹理条 -->
<GeometryDrawing Brush="#FFD4D0CC" Geometry="F1 M38,56z M0,0z M12,19.5C12,18.1193,13.1193,17,14.5,17L14.5,17C15.8807,17,17,18.1193,17,19.5L17,36.5C17,37.8807,15.8807,39,14.5,39L14.5,39C13.1193,39,12,37.8807,12,36.5L12,19.5z" />
<!-- 左侧纹理条阴影 -->
<GeometryDrawing Geometry="F0 M38,56z M0,0z M11.5,19.5C11.5,17.8431 12.8431,16.5 14.5,16.5 16.1569,16.5 17.5,17.8431 17.5,19.5L17.5,36.5C17.5,38.1569 16.1569,39.5 14.5,39.5 12.8431,39.5 11.5,38.1569 11.5,36.5L11.5,19.5z M14.5,17.5C13.3954,17.5,12.5,18.3954,12.5,19.5L12.5,36.5C12.5,37.6046 13.3954,38.5 14.5,38.5 15.6046,38.5 16.5,37.6046 16.5,36.5L16.5,19.5C16.5,18.3954,15.6046,17.5,14.5,17.5z"> <GeometryDrawing Geometry="F0 M38,56z M0,0z M11.5,19.5C11.5,17.8431 12.8431,16.5 14.5,16.5 16.1569,16.5 17.5,17.8431 17.5,19.5L17.5,36.5C17.5,38.1569 16.1569,39.5 14.5,39.5 12.8431,39.5 11.5,38.1569 11.5,36.5L11.5,19.5z M14.5,17.5C13.3954,17.5,12.5,18.3954,12.5,19.5L12.5,36.5C12.5,37.6046 13.3954,38.5 14.5,38.5 15.6046,38.5 16.5,37.6046 16.5,36.5L16.5,19.5C16.5,18.3954,15.6046,17.5,14.5,17.5z">
<GeometryDrawing.Brush> <GeometryDrawing.Brush>
<SolidColorBrush Color="#FF8A8680" Opacity="0.3" /> <SolidColorBrush Color="#FF6F6F6F" Opacity="0.25" />
</GeometryDrawing.Brush> </GeometryDrawing.Brush>
</GeometryDrawing> </GeometryDrawing>
<GeometryDrawing Brush="#FFD1CFCD" Geometry="F1 M38,56z M0,0z M21,19.5C21,18.1193,22.1193,17,23.5,17L23.5,17C24.8807,17,26,18.1193,26,19.5L26,36.5C26,37.8807,24.8807,39,23.5,39L23.5,39C22.1193,39,21,37.8807,21,36.5L21,19.5z" />
<!-- 右侧纹理条 -->
<GeometryDrawing Brush="#FFD4D0CC" Geometry="F1 M38,56z M0,0z M21,19.5C21,18.1193,22.1193,17,23.5,17L23.5,17C24.8807,17,26,18.1193,26,19.5L26,36.5C26,37.8807,24.8807,39,23.5,39L23.5,39C22.1193,39,21,37.8807,21,36.5L21,19.5z" />
<!-- 右侧纹理条阴影 -->
<GeometryDrawing Geometry="F0 M38,56z M0,0z M20.5,19.5C20.5,17.8431 21.8431,16.5 23.5,16.5 25.1569,16.5 26.5,17.8431 26.5,19.5L26.5,36.5C26.5,38.1569 25.1569,39.5 23.5,39.5 21.8431,39.5 20.5,38.1569 20.5,36.5L20.5,19.5z M23.5,17.5C22.3954,17.5,21.5,18.3954,21.5,19.5L21.5,36.5C21.5,37.6046 22.3954,38.5 23.5,38.5 24.6046,38.5 25.5,37.6046 25.5,36.5L25.5,19.5C25.5,18.3954,24.6046,17.5,23.5,17.5z"> <GeometryDrawing Geometry="F0 M38,56z M0,0z M20.5,19.5C20.5,17.8431 21.8431,16.5 23.5,16.5 25.1569,16.5 26.5,17.8431 26.5,19.5L26.5,36.5C26.5,38.1569 25.1569,39.5 23.5,39.5 21.8431,39.5 20.5,38.1569 20.5,36.5L20.5,19.5z M23.5,17.5C22.3954,17.5,21.5,18.3954,21.5,19.5L21.5,36.5C21.5,37.6046 22.3954,38.5 23.5,38.5 24.6046,38.5 25.5,37.6046 25.5,36.5L25.5,19.5C25.5,18.3954,24.6046,17.5,23.5,17.5z">
<GeometryDrawing.Brush> <GeometryDrawing.Brush>
<SolidColorBrush Color="#FF8A8680" Opacity="0.3" /> <SolidColorBrush Color="#FF6F6F6F" Opacity="0.25" />
</GeometryDrawing.Brush>
</GeometryDrawing>
<!-- 高光效果 -->
<GeometryDrawing Geometry="F1 M38,56z M0,0z M2,4C2,2.89543,2.89543,2,4,2L34,2C35.1046,2,36,2.89543,36,4L36,12L2,12L2,4z">
<GeometryDrawing.Brush>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="#40FFFFFF" Offset="0"/>
<GradientStop Color="#00FFFFFF" Offset="1"/>
</LinearGradientBrush>
</GeometryDrawing.Brush> </GeometryDrawing.Brush>
</GeometryDrawing> </GeometryDrawing>
</DrawingGroup> </DrawingGroup>
<!-- 新版圆形橡皮擦 - 更现代的设计 -->
<DrawingGroup x:Key="EraserCircleDrawingGroup" ClipGeometry="M0,0 V56 H56 V0 H0 Z"> <DrawingGroup x:Key="EraserCircleDrawingGroup" ClipGeometry="M0,0 V56 H56 V0 H0 Z">
<!-- 主体背景 - 使用径向渐变效果 --> <GeometryDrawing Brush="#FFF2EEEB" Geometry="F1 M56,56z M0,0z M0,28C0,12.536,12.536,0,28,0L28,0C43.464,0,56,12.536,56,28L56,28C56,43.464,43.464,56,28,56L28,56C12.536,56,0,43.464,0,28L0,28z" />
<GeometryDrawing Geometry="F1 M56,56z M0,0z M0,28C0,12.536,12.536,0,28,0L28,0C43.464,0,56,12.536,56,28L56,28C56,43.464,43.464,56,28,56L28,56C12.536,56,0,43.464,0,28L0,28z"> <GeometryDrawing Brush="#FFCDCDCD" Geometry="F0 M56,56z M0,0z M1,28C1,42.9117 13.0883,55 28,55 42.9117,55 55,42.9117 55,28 55,13.0883 42.9117,1 28,1 13.0883,1 1,13.0883 1,28z M28,0C12.536,0 0,12.536 0,28 0,43.464 12.536,56 28,56 43.464,56 56,43.464 56,28 56,12.536 43.464,0 28,0z" />
<GeometryDrawing.Brush> <GeometryDrawing Brush="#FFD1CFCD" Geometry="F1 M56,56z M0,0z M21,19.5C21,18.1193,22.1193,17,23.5,17L23.5,17C24.8807,17,26,18.1193,26,19.5L26,36.5C26,37.8807,24.8807,39,23.5,39L23.5,39C22.1193,39,21,37.8807,21,36.5L21,19.5z" />
<RadialGradientBrush Center="0.3,0.3" RadiusX="0.8" RadiusY="0.8">
<GradientStop Color="#FFFCFAF8" Offset="0"/>
<GradientStop Color="#FFE8E4E0" Offset="0.7"/>
<GradientStop Color="#FFD4D0CC" Offset="1"/>
</RadialGradientBrush>
</GeometryDrawing.Brush>
</GeometryDrawing>
<!-- 边框 - 更精细的边框设计 -->
<GeometryDrawing Geometry="F0 M56,56z M0,0z M1,28C1,42.9117 13.0883,55 28,55 42.9117,55 55,42.9117 55,28 55,13.0883 42.9117,1 28,1 13.0883,1 1,13.0883 1,28z M28,0C12.536,0 0,12.536 0,28 0,43.464 12.536,56 28,56 43.464,56 56,43.464 56,28 56,12.536 43.464,0 28,0z">
<GeometryDrawing.Brush>
<SolidColorBrush Color="#FFB8B4B0" Opacity="0.8"/>
</GeometryDrawing.Brush>
</GeometryDrawing>
<!-- 左侧纹理条 -->
<GeometryDrawing Brush="#FFD4D0CC" Geometry="F1 M56,56z M0,0z M21,19.5C21,18.1193,22.1193,17,23.5,17L23.5,17C24.8807,17,26,18.1193,26,19.5L26,36.5C26,37.8807,24.8807,39,23.5,39L23.5,39C22.1193,39,21,37.8807,21,36.5L21,19.5z" />
<!-- 左侧纹理条阴影 -->
<GeometryDrawing Geometry="F0 M56,56z M0,0z M20.5,19.5C20.5,17.8431 21.8431,16.5 23.5,16.5 25.1569,16.5 26.5,17.8431 26.5,19.5L26.5,36.5C26.5,38.1569 25.1569,39.5 23.5,39.5 21.8431,39.5 20.5,38.1569 20.5,36.5L20.5,19.5z M23.5,17.5C22.3954,17.5,21.5,18.3954,21.5,19.5L21.5,36.5C21.5,37.6046 22.3954,38.5 23.5,38.5 24.6046,38.5 25.5,37.6046 25.5,36.5L25.5,19.5C25.5,18.3954,24.6046,17.5,23.5,17.5z"> <GeometryDrawing Geometry="F0 M56,56z M0,0z M20.5,19.5C20.5,17.8431 21.8431,16.5 23.5,16.5 25.1569,16.5 26.5,17.8431 26.5,19.5L26.5,36.5C26.5,38.1569 25.1569,39.5 23.5,39.5 21.8431,39.5 20.5,38.1569 20.5,36.5L20.5,19.5z M23.5,17.5C22.3954,17.5,21.5,18.3954,21.5,19.5L21.5,36.5C21.5,37.6046 22.3954,38.5 23.5,38.5 24.6046,38.5 25.5,37.6046 25.5,36.5L25.5,19.5C25.5,18.3954,24.6046,17.5,23.5,17.5z">
<GeometryDrawing.Brush> <GeometryDrawing.Brush>
<SolidColorBrush Color="#FF8A8680" Opacity="0.3" /> <SolidColorBrush Color="#FF6F6F6F" Opacity="0.25" />
</GeometryDrawing.Brush> </GeometryDrawing.Brush>
</GeometryDrawing> </GeometryDrawing>
<GeometryDrawing Brush="#FFD1CFCD" Geometry="F1 M56,56z M0,0z M30,19.5C30,18.1193,31.1193,17,32.5,17L32.5,17C33.8807,17,35,18.1193,35,19.5L35,36.5C35,37.8807,33.8807,39,32.5,39L32.5,39C31.1193,39,30,37.8807,30,36.5L30,19.5z" />
<!-- 右侧纹理条 -->
<GeometryDrawing Brush="#FFD4D0CC" Geometry="F1 M56,56z M0,0z M30,19.5C30,18.1193,31.1193,17,32.5,17L32.5,17C33.8807,17,35,18.1193,35,19.5L35,36.5C35,37.8807,33.8807,39,32.5,39L32.5,39C31.1193,39,30,37.8807,30,36.5L30,19.5z" />
<!-- 右侧纹理条阴影 -->
<GeometryDrawing Geometry="F0 M56,56z M0,0z M29.5,19.5C29.5,17.8431 30.8431,16.5 32.5,16.5 34.1569,16.5 35.5,17.8431 35.5,19.5L35.5,36.5C35.5,38.1569 34.1569,39.5 32.5,39.5 30.8431,39.5 29.5,38.1569 29.5,36.5L29.5,19.5z M32.5,17.5C31.3954,17.5,30.5,18.3954,30.5,19.5L30.5,36.5C30.5,37.6046 31.3954,38.5 32.5,38.5 33.6046,38.5 34.5,37.6046 34.5,36.5L34.5,19.5C34.5,18.3954,33.6046,17.5,32.5,17.5z"> <GeometryDrawing Geometry="F0 M56,56z M0,0z M29.5,19.5C29.5,17.8431 30.8431,16.5 32.5,16.5 34.1569,16.5 35.5,17.8431 35.5,19.5L35.5,36.5C35.5,38.1569 34.1569,39.5 32.5,39.5 30.8431,39.5 29.5,38.1569 29.5,36.5L29.5,19.5z M32.5,17.5C31.3954,17.5,30.5,18.3954,30.5,19.5L30.5,36.5C30.5,37.6046 31.3954,38.5 32.5,38.5 33.6046,38.5 34.5,37.6046 34.5,36.5L34.5,19.5C34.5,18.3954,33.6046,17.5,32.5,17.5z">
<GeometryDrawing.Brush> <GeometryDrawing.Brush>
<SolidColorBrush Color="#FF8A8680" Opacity="0.3" /> <SolidColorBrush Color="#FF6F6F6F" Opacity="0.25" />
</GeometryDrawing.Brush>
</GeometryDrawing>
<!-- 高光效果 -->
<GeometryDrawing Geometry="F1 M56,56z M0,0z M14,14C20.6274,14,26,19.3726,26,26C26,32.6274,20.6274,38,14,38C7.37258,38,2,32.6274,2,26C2,19.3726,7.37258,14,14,14z">
<GeometryDrawing.Brush>
<RadialGradientBrush Center="0.3,0.3" RadiusX="0.6" RadiusY="0.6">
<GradientStop Color="#60FFFFFF" Offset="0"/>
<GradientStop Color="#20FFFFFF" Offset="0.7"/>
<GradientStop Color="#00FFFFFF" Offset="1"/>
</RadialGradientBrush>
</GeometryDrawing.Brush>
</GeometryDrawing>
<!-- 内部阴影效果 -->
<GeometryDrawing Geometry="F0 M56,56z M0,0z M3,28C3,41.8071 14.1929,53 28,53 41.8071,53 53,41.8071 53,28 53,14.1929 41.8071,3 28,3 14.1929,3 3,14.1929 3,28z M28,2C13.6406,2 2,13.6406 2,28 2,42.3594 13.6406,54 28,54 42.3594,54 54,42.3594 54,28 54,13.6406 42.3594,2 28,2z">
<GeometryDrawing.Brush>
<SolidColorBrush Color="#FF6B6760" Opacity="0.2"/>
</GeometryDrawing.Brush> </GeometryDrawing.Brush>
</GeometryDrawing> </GeometryDrawing>
</DrawingGroup> </DrawingGroup>
</ResourceDictionary>
<!-- 新增:现代化的橡皮擦预览圆圈 -->
<DrawingGroup x:Key="EraserPreviewCircle" ClipGeometry="M0,0 V100 H100 V0 H0 Z">
<GeometryDrawing Geometry="F1 M100,100z M0,0z M0,50C0,22.386,22.386,0,50,0L50,0C77.614,0,100,22.386,100,50L100,50C100,77.614,77.614,100,50,100L50,100C22.386,100,0,77.614,0,50L0,50z">
<GeometryDrawing.Brush>
<SolidColorBrush Color="#40FF6B6B" />
</GeometryDrawing.Brush>
</GeometryDrawing>
<GeometryDrawing Geometry="F0 M100,100z M0,0z M2,50C2,76.5097 23.4903,98 50,98 76.5097,98 98,76.5097 98,50 98,23.4903 76.5097,2 50,2 23.4903,2 2,23.4903 2,50z M50,0C22.386,0 0,22.386 0,50 0,77.614 22.386,100 50,100 77.614,100 100,77.614 100,50 100,22.386 77.614,0 50,0z">
<GeometryDrawing.Brush>
<SolidColorBrush Color="#80FF4444" />
</GeometryDrawing.Brush>
</GeometryDrawing>
</DrawingGroup>
<!-- 新增:现代化的橡皮擦预览矩形 -->
<DrawingGroup x:Key="EraserPreviewRectangle" ClipGeometry="M0,0 V100 H75 V0 H0 Z">
<GeometryDrawing Geometry="F1 M75,100z M0,0z M0,8C0,3.58172,3.58172,0,8,0L67,0C71.4183,0,75,3.58172,75,8L75,92C75,96.4183,71.4183,100,67,100L8,100C3.58172,100,0,96.4183,0,92L0,8z">
<GeometryDrawing.Brush>
<SolidColorBrush Color="#40FF6B6B" />
</GeometryDrawing.Brush>
</GeometryDrawing>
<GeometryDrawing Geometry="F0 M75,100z M0,0z M67,2L8,2C4.68629,2,2,4.68629,2,8L2,92C2,95.3137,4.68629,98,8,98L67,98C70.3137,98,73,95.3137,73,92L73,8C73,4.68629,70.3137,2,67,2z M8,0C3.58172,0,0,3.58172,0,8L0,92C0,96.4183,3.58172,100,8,100L67,100C71.4183,100,75,96.4183,75,92L75,8C75,3.58172,71.4183,0,67,0L8,0z">
<GeometryDrawing.Brush>
<SolidColorBrush Color="#80FF4444" />
</GeometryDrawing.Brush>
</GeometryDrawing>
</DrawingGroup>
</ResourceDictionary>