@@ -2390,7 +2390,7 @@
|
|||||||
<Grid Name="GridTransparencyFakeBackground" Opacity="0" />
|
<Grid Name="GridTransparencyFakeBackground" Opacity="0" />
|
||||||
<Label Name="Label" Visibility="Collapsed" Foreground="Gray" Content="0" />
|
<Label Name="Label" Visibility="Collapsed" Foreground="Gray" Content="0" />
|
||||||
<Grid Name="InkCanvasGridForInkReplay">
|
<Grid Name="InkCanvasGridForInkReplay">
|
||||||
<InkCanvas x:Name="inkCanvas" ForceCursor="False"
|
<InkCanvas x:Name="inkCanvas" ForceCursor="True" UseCustomCursor="True"
|
||||||
TouchUp="Main_Grid_TouchUp" TouchDown="Main_Grid_TouchDown"
|
TouchUp="Main_Grid_TouchUp" TouchDown="Main_Grid_TouchDown"
|
||||||
TouchMove="inkCanvas_TouchMove"
|
TouchMove="inkCanvas_TouchMove"
|
||||||
ManipulationDelta="Main_Grid_ManipulationDelta"
|
ManipulationDelta="Main_Grid_ManipulationDelta"
|
||||||
|
|||||||
@@ -154,16 +154,11 @@ namespace Ink_Canvas {
|
|||||||
private void inkCanvas_EditingModeChanged(object sender, RoutedEventArgs e) {
|
private void inkCanvas_EditingModeChanged(object sender, RoutedEventArgs e) {
|
||||||
var inkCanvas1 = sender as InkCanvas;
|
var inkCanvas1 = sender as InkCanvas;
|
||||||
if (inkCanvas1 == null) return;
|
if (inkCanvas1 == null) return;
|
||||||
// 修复“显示画笔光标”选项不可用的问题
|
// 修复"显示画笔光标"选项不可用的问题
|
||||||
if (Settings.Canvas.IsShowCursor) {
|
if (Settings.Canvas.IsShowCursor) {
|
||||||
inkCanvas1.UseCustomCursor = true;
|
inkCanvas1.UseCustomCursor = true;
|
||||||
// 修复触屏和数位笔时光标不显示:只要有输入设备悬停、捕获,或有任何Stylus设备连接就显示
|
// 修复触屏和数位笔时光标不显示:强制显示光标,不再依赖鼠标或触控状态
|
||||||
if ((inkCanvas1.EditingMode == InkCanvasEditingMode.Ink || drawingShapeMode != 0)
|
|
||||||
&& (inkCanvas1.IsStylusDirectlyOver || inkCanvas1.IsMouseDirectlyOver || inkCanvas1.IsStylusCaptured || inkCanvas1.IsMouseCaptured
|
|
||||||
|| Stylus.CurrentStylusDevice != null))
|
|
||||||
inkCanvas1.ForceCursor = true;
|
inkCanvas1.ForceCursor = true;
|
||||||
else
|
|
||||||
inkCanvas1.ForceCursor = false;
|
|
||||||
} else {
|
} else {
|
||||||
inkCanvas1.UseCustomCursor = false;
|
inkCanvas1.UseCustomCursor = false;
|
||||||
inkCanvas1.ForceCursor = false;
|
inkCanvas1.ForceCursor = false;
|
||||||
@@ -368,6 +363,8 @@ namespace Ink_Canvas {
|
|||||||
if (Settings.Canvas.IsShowCursor)
|
if (Settings.Canvas.IsShowCursor)
|
||||||
{
|
{
|
||||||
inkCanvas.ForceCursor = true;
|
inkCanvas.ForceCursor = true;
|
||||||
|
// 确保鼠标光标对触摸可见
|
||||||
|
System.Windows.Forms.Cursor.Show();
|
||||||
// 新增:当处于套索选择模式时保持光标可见
|
// 新增:当处于套索选择模式时保持光标可见
|
||||||
if (inkCanvas.EditingMode == InkCanvasEditingMode.Select)
|
if (inkCanvas.EditingMode == InkCanvasEditingMode.Select)
|
||||||
inkCanvas.Cursor = Cursors.Cross;
|
inkCanvas.Cursor = Cursors.Cross;
|
||||||
@@ -383,8 +380,10 @@ namespace Ink_Canvas {
|
|||||||
private void inkCanvas_TouchUp(object sender, TouchEventArgs e)
|
private void inkCanvas_TouchUp(object sender, TouchEventArgs e)
|
||||||
{
|
{
|
||||||
// 修改:根据当前模式和设置恢复光标状态
|
// 修改:根据当前模式和设置恢复光标状态
|
||||||
if (Settings.Canvas.IsShowCursor && inkCanvas.EditingMode == InkCanvasEditingMode.Ink) {
|
if (Settings.Canvas.IsShowCursor) {
|
||||||
inkCanvas.ForceCursor = true;
|
inkCanvas.ForceCursor = true;
|
||||||
|
// 确保鼠标光标对触摸可见
|
||||||
|
System.Windows.Forms.Cursor.Show();
|
||||||
} else {
|
} else {
|
||||||
inkCanvas.ForceCursor = false;
|
inkCanvas.ForceCursor = false;
|
||||||
System.Windows.Forms.Cursor.Show();
|
System.Windows.Forms.Cursor.Show();
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ namespace Ink_Canvas {
|
|||||||
#endregion Floating Bar Control
|
#endregion Floating Bar Control
|
||||||
|
|
||||||
private int drawingShapeMode = 0;
|
private int drawingShapeMode = 0;
|
||||||
private bool isLongPressSelected = false; // 用于存是否是“选中”状态,便于后期抬笔后不做切换到笔的处理
|
private bool isLongPressSelected = false; // 用于存是否是"选中"状态,便于后期抬笔后不做切换到笔的处理
|
||||||
|
|
||||||
#region Buttons
|
#region Buttons
|
||||||
|
|
||||||
@@ -429,6 +429,8 @@ namespace Ink_Canvas {
|
|||||||
|
|
||||||
private void inkCanvas_TouchMove(object sender, TouchEventArgs e) {
|
private void inkCanvas_TouchMove(object sender, TouchEventArgs e) {
|
||||||
if (isSingleFingerDragMode) return;
|
if (isSingleFingerDragMode) return;
|
||||||
|
|
||||||
|
// 处理形状绘制模式
|
||||||
if (drawingShapeMode != 0) {
|
if (drawingShapeMode != 0) {
|
||||||
if (isLastTouchEraser) return;
|
if (isLastTouchEraser) return;
|
||||||
//EraserContainer.Background = null;
|
//EraserContainer.Background = null;
|
||||||
@@ -443,15 +445,75 @@ namespace Ink_Canvas {
|
|||||||
catch {
|
catch {
|
||||||
Trace.WriteLine("lastTempStrokeCollection failed.");
|
Trace.WriteLine("lastTempStrokeCollection failed.");
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 触摸移动时保持自定义光标显示
|
||||||
|
if (Settings.Canvas.IsShowCursor) {
|
||||||
|
inkCanvas.ForceCursor = true;
|
||||||
|
System.Windows.Forms.Cursor.Show();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (NeedUpdateIniP()) iniP = e.GetTouchPoint(inkCanvas).Position;
|
||||||
|
if (drawingShapeMode == 9 && isFirstTouchCuboid == false) MouseTouchMove(iniP);
|
||||||
|
inkCanvas.Opacity = 1;
|
||||||
|
double boundsWidth = GetTouchBoundWidth(e), eraserMultiplier = 1.0;
|
||||||
|
if (!Settings.Advanced.EraserBindTouchMultiplier && Settings.Advanced.IsSpecialScreen)
|
||||||
|
eraserMultiplier = 1 / Settings.Advanced.TouchMultiplier;
|
||||||
|
if (boundsWidth > BoundsWidth) {
|
||||||
|
isLastTouchEraser = true;
|
||||||
|
if (drawingShapeMode == 0 && forceEraser) return;
|
||||||
|
if (boundsWidth > BoundsWidth * 2.5) {
|
||||||
|
double k = 1;
|
||||||
|
switch (Settings.Canvas.EraserSize) {
|
||||||
|
case 0:
|
||||||
|
k = 0.5;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
k = 0.8;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
k = 1.25;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
k = 1.8;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
inkCanvas.EraserShape = new EllipseStylusShape(boundsWidth * k * eraserMultiplier,
|
||||||
|
boundsWidth * k * eraserMultiplier);
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (StackPanelPPTControls.Visibility == Visibility.Visible && inkCanvas.Strokes.Count == 0 &&
|
||||||
|
Settings.PowerPointSettings.IsEnableFingerGestureSlideShowControl) {
|
||||||
|
isLastTouchEraser = false;
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.GestureOnly;
|
||||||
|
inkCanvas.Opacity = 0.1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
inkCanvas.EraserShape = new EllipseStylusShape(5, 5);
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.EraseByStroke;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
isLastTouchEraser = false;
|
||||||
|
// 修复面积擦时不显示橡皮形状:无论 forcePointEraser 状态,均显示 50x50 橡皮
|
||||||
|
inkCanvas.EraserShape = new EllipseStylusShape(50, 50);
|
||||||
|
if (forceEraser) return;
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
||||||
|
}
|
||||||
|
|
||||||
if (inkCanvas.EditingMode != InkCanvasEditingMode.None)
|
if (inkCanvas.EditingMode != InkCanvasEditingMode.None)
|
||||||
inkCanvas.EditingMode = InkCanvasEditingMode.None;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
MouseTouchMove(e.GetTouchPoint(inkCanvas).Position);
|
if (e.TouchDevice == null) {
|
||||||
|
System.Windows.Forms.Cursor.Show();
|
||||||
|
} else {
|
||||||
|
System.Windows.Forms.Cursor.Hide();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int drawMultiStepShapeCurrentStep = 0; //多笔完成的图形 当前所处在的笔画
|
private int drawMultiStepShapeCurrentStep = 0; //多笔完成的图形 当前所处在的笔画
|
||||||
|
|||||||
@@ -183,6 +183,11 @@ namespace Ink_Canvas {
|
|||||||
private bool forcePointEraser = true;
|
private bool forcePointEraser = true;
|
||||||
|
|
||||||
private void Main_Grid_TouchDown(object sender, TouchEventArgs e) {
|
private void Main_Grid_TouchDown(object sender, TouchEventArgs e) {
|
||||||
|
// 确保触摸时显示自定义光标
|
||||||
|
if (Settings.Canvas.IsShowCursor) {
|
||||||
|
inkCanvas.ForceCursor = true;
|
||||||
|
System.Windows.Forms.Cursor.Show();
|
||||||
|
}
|
||||||
|
|
||||||
inkCanvas.CaptureTouch(e.TouchDevice);
|
inkCanvas.CaptureTouch(e.TouchDevice);
|
||||||
ViewboxFloatingBar.IsHitTestVisible = false;
|
ViewboxFloatingBar.IsHitTestVisible = false;
|
||||||
|
|||||||
Binary file not shown.
@@ -1,4 +1,4 @@
|
|||||||
#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "467145DD780C5E147BCA6025B5E2B49160B6EF9E"
|
#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "1D11E3F5636ADFC403B4C9CD768CCA9048DA6765"
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// 此代码由工具生成。
|
// 此代码由工具生成。
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "467145DD780C5E147BCA6025B5E2B49160B6EF9E"
|
#pragma checksum "..\..\..\MainWindow.xaml" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "1D11E3F5636ADFC403B4C9CD768CCA9048DA6765"
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// 此代码由工具生成。
|
// 此代码由工具生成。
|
||||||
|
|||||||
Reference in New Issue
Block a user