質問

InkCanvasとしてSketchPadを持っています。私が書いたので消しゴムのサイズを変更したい:

Private Sub Sketchpad_KeyDown(sender As System.Object, e As System.Windows.Input.KeyEventArgs) Handles Sketchpad.KeyDown

If e.Key = Key.OemMinus Then

' Decrease size of Eraser to 5*5 

Sketchpad.EraserShape = New RectangleStylusShape(5, 5)

End If

If e.Key = Key.OemPlus Then

' Increase size of Eraser to 50*50 

Sketchpad.EraserShape = New RectangleStylusShape(50, 50)

End If

If e.Key = Key.I Then
' Change editing mode to Ink
Sketchpad.EditingMode = InkCanvasEditingMode.Ink

End If

If e.Key = Key.E Then
' Change editing mode to Eraser
Sketchpad.EditingMode = InkCanvasEditingMode.EraseByPoint

End If

End Sub
.

これを試してみてください:

  1. ERASERを押して消しゴムを選択すると、消しゴムStylustipが長方形のに表示されます。
  2. + +符号を押すとサイズを大きくするため、変更が表示されません。なぜ?
  3. 今すぐ編集モードを変更するために、インクのチップが表示されます。
  4. 再度ERASERにreswitchを押します。消しゴムの形が変更されたことがわかります。

    +記号を押した後のなぜですか?

役に立ちましたか?

解決

ヘルプ

"EraserShapeを変更した場合、Inkcanvasでレンダリングされたカーソルは次の編集モードが変更されるまで更新されません。"

次のコードをテストし、それはうまく機能します:

if (e.Key == Key.OemMinus)
{
    ink.EraserShape = new RectangleStylusShape(5, 5);
    var editMode = ink.EditingMode;
    ink.EditingMode = InkCanvasEditingMode.None;
    ink.EditingMode = editMode;
}
if (e.Key == Key.OemPlus)
{
    ink.EraserShape = new RectangleStylusShape(50, 50);
    var editMode = ink.EditingMode;
    ink.EditingMode = InkCanvasEditingMode.None;
    ink.EditingMode = editMode;
}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top