fix:触摸问题
This commit is contained in:
@@ -1440,6 +1440,7 @@ namespace Ink_Canvas {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void EraserIcon_Click(object sender, RoutedEventArgs e) {
|
private void EraserIcon_Click(object sender, RoutedEventArgs e) {
|
||||||
|
EnterMultiTouchModeIfNeeded();
|
||||||
bool isAlreadyEraser = inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint;
|
bool isAlreadyEraser = inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint;
|
||||||
forceEraser = false;
|
forceEraser = false;
|
||||||
forcePointEraser = true;
|
forcePointEraser = true;
|
||||||
@@ -1464,6 +1465,7 @@ namespace Ink_Canvas {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void BoardEraserIcon_Click(object sender, RoutedEventArgs e) {
|
private void BoardEraserIcon_Click(object sender, RoutedEventArgs e) {
|
||||||
|
EnterMultiTouchModeIfNeeded();
|
||||||
bool isAlreadyEraser = inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint;
|
bool isAlreadyEraser = inkCanvas.EditingMode == InkCanvasEditingMode.EraseByPoint;
|
||||||
forceEraser = false;
|
forceEraser = false;
|
||||||
forcePointEraser = true;
|
forcePointEraser = true;
|
||||||
@@ -1487,6 +1489,7 @@ namespace Ink_Canvas {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void EraserIconByStrokes_Click(object sender, RoutedEventArgs e) {
|
private void EraserIconByStrokes_Click(object sender, RoutedEventArgs e) {
|
||||||
|
EnterMultiTouchModeIfNeeded();
|
||||||
|
|
||||||
if (lastBorderMouseDownObject != null && lastBorderMouseDownObject is Panel)
|
if (lastBorderMouseDownObject != null && lastBorderMouseDownObject is Panel)
|
||||||
((Panel)lastBorderMouseDownObject).Background = new SolidColorBrush(Colors.Transparent);
|
((Panel)lastBorderMouseDownObject).Background = new SolidColorBrush(Colors.Transparent);
|
||||||
|
|||||||
@@ -244,6 +244,7 @@ namespace Ink_Canvas {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void BtnSelect_Click(object sender, RoutedEventArgs e) {
|
private void BtnSelect_Click(object sender, RoutedEventArgs e) {
|
||||||
|
ExitMultiTouchModeIfNeeded();
|
||||||
forceEraser = true;
|
forceEraser = true;
|
||||||
drawingShapeMode = 0;
|
drawingShapeMode = 0;
|
||||||
inkCanvas.IsManipulationEnabled = false;
|
inkCanvas.IsManipulationEnabled = false;
|
||||||
@@ -424,6 +425,7 @@ namespace Ink_Canvas {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void LassoSelect_Click(object sender, RoutedEventArgs e) {
|
private void LassoSelect_Click(object sender, RoutedEventArgs e) {
|
||||||
|
ExitMultiTouchModeIfNeeded();
|
||||||
forceEraser = false;
|
forceEraser = false;
|
||||||
forcePointEraser = false;
|
forcePointEraser = false;
|
||||||
isLastTouchEraser = false;
|
isLastTouchEraser = false;
|
||||||
@@ -433,6 +435,7 @@ namespace Ink_Canvas {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void BtnLassoSelect_Click(object sender, RoutedEventArgs e) {
|
private void BtnLassoSelect_Click(object sender, RoutedEventArgs e) {
|
||||||
|
ExitMultiTouchModeIfNeeded();
|
||||||
forceEraser = false;
|
forceEraser = false;
|
||||||
forcePointEraser = false;
|
forcePointEraser = false;
|
||||||
isLastTouchEraser = false;
|
isLastTouchEraser = false;
|
||||||
|
|||||||
@@ -479,5 +479,43 @@ namespace Ink_Canvas {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 退出多指书写模式,恢复InkCanvas的TouchDown事件绑定
|
||||||
|
private void ExitMultiTouchModeIfNeeded()
|
||||||
|
{
|
||||||
|
if (isInMultiTouchMode)
|
||||||
|
{
|
||||||
|
inkCanvas.StylusDown -= MainWindow_StylusDown;
|
||||||
|
inkCanvas.StylusMove -= MainWindow_StylusMove;
|
||||||
|
inkCanvas.StylusUp -= MainWindow_StylusUp;
|
||||||
|
inkCanvas.TouchDown -= MainWindow_TouchDown;
|
||||||
|
inkCanvas.TouchDown += Main_Grid_TouchDown;
|
||||||
|
if (inkCanvas.EditingMode != InkCanvasEditingMode.EraseByPoint)
|
||||||
|
{
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.Ink;
|
||||||
|
}
|
||||||
|
inkCanvas.Children.Clear();
|
||||||
|
isInMultiTouchMode = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 进入多指书写模式,绑定Main_Grid_TouchDown
|
||||||
|
private void EnterMultiTouchModeIfNeeded()
|
||||||
|
{
|
||||||
|
if (!isInMultiTouchMode)
|
||||||
|
{
|
||||||
|
inkCanvas.StylusDown += MainWindow_StylusDown;
|
||||||
|
inkCanvas.StylusMove += MainWindow_StylusMove;
|
||||||
|
inkCanvas.StylusUp += MainWindow_StylusUp;
|
||||||
|
inkCanvas.TouchDown += MainWindow_TouchDown;
|
||||||
|
inkCanvas.TouchDown -= Main_Grid_TouchDown;
|
||||||
|
if (inkCanvas.EditingMode != InkCanvasEditingMode.EraseByPoint)
|
||||||
|
{
|
||||||
|
inkCanvas.EditingMode = InkCanvasEditingMode.None;
|
||||||
|
}
|
||||||
|
inkCanvas.Children.Clear();
|
||||||
|
isInMultiTouchMode = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user