improve:手掌擦

This commit is contained in:
2025-07-23 19:42:41 +08:00
parent 1706341283
commit eb0cf27218
4 changed files with 69 additions and 24 deletions
+22 -6
View File
@@ -634,52 +634,68 @@ namespace Ink_Canvas {
// 绑定事件处理
overlay.MouseDown += (sender, e) => {
if (!MainWindow.EnablePalmEraser) return;
var inkCanvas = this.FindName("inkCanvas") as InkCanvas;
if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint) {
lastEditingMode = inkCanvas.EditingMode;
overlay.CaptureMouse();
inkCanvas.EditingMode = InkCanvasEditingMode.None;
StartAdvancedEraserOperation(sender);
}
};
overlay.MouseUp += (sender, e) => {
if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint) {
if (!MainWindow.EnablePalmEraser) return;
var inkCanvas = this.FindName("inkCanvas") as InkCanvas;
if (inkCanvas.EditingMode == InkCanvasEditingMode.None) {
overlay.ReleaseMouseCapture();
EndAdvancedEraserOperation(sender);
inkCanvas.EditingMode = InkCanvasEditingMode.Ink; // 抬手后自动回到画笔
}
};
overlay.MouseMove += (sender, e) => {
if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint) {
if (!MainWindow.EnablePalmEraser) return;
var inkCanvas = this.FindName("inkCanvas") as InkCanvas;
if (inkCanvas.EditingMode == InkCanvasEditingMode.None) {
var position = e.GetPosition((UIElement)this.FindName("inkCanvas"));
Trace.WriteLine($"Advanced Eraser: Mouse move event triggered at ({position.X:F1}, {position.Y:F1})");
UpdateAdvancedEraserPosition(sender, position);
} else {
Trace.WriteLine($"Advanced Eraser: Mouse move ignored - not in eraser mode, current mode: {inkCanvas.EditingMode}");
}
};
// 触控笔事件
overlay.StylusDown += (sender, e) => {
if (!MainWindow.EnablePalmEraser) return;
var inkCanvas = this.FindName("inkCanvas") as InkCanvas;
if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint) {
e.Handled = true;
if (e.StylusDevice.TabletDevice.Type == TabletDeviceType.Stylus) {
overlay.CaptureStylus();
}
lastEditingMode = inkCanvas.EditingMode;
inkCanvas.EditingMode = InkCanvasEditingMode.None;
StartAdvancedEraserOperation(sender);
}
};
overlay.StylusUp += (sender, e) => {
if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint) {
if (!MainWindow.EnablePalmEraser) return;
var inkCanvas = this.FindName("inkCanvas") as InkCanvas;
if (inkCanvas.EditingMode == InkCanvasEditingMode.None) {
e.Handled = true;
if (e.StylusDevice.TabletDevice.Type == TabletDeviceType.Stylus) {
overlay.ReleaseStylusCapture();
}
EndAdvancedEraserOperation(sender);
inkCanvas.EditingMode = InkCanvasEditingMode.Ink; // 抬手后自动回到画笔
}
};
overlay.StylusMove += (sender, e) => {
if (inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint) {
if (!MainWindow.EnablePalmEraser) return;
var inkCanvas = this.FindName("inkCanvas") as InkCanvas;
if (inkCanvas.EditingMode == InkCanvasEditingMode.None) {
e.Handled = true;
var position = e.GetPosition((UIElement)this.FindName("inkCanvas"));
UpdateAdvancedEraserPosition(sender, position);