Domanda

Ho schizzato come InkCanvas;Voglio cambiare la dimensione della gomma, quindi ho scritto:

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
.

Prova questo:

    .
  1. Selezionare la gomma da uomo premendo E, Eraser Styluscisip appare rettangolare
  2. Premere + segno per aumentare le dimensioni, non vedrai alcuna modifica.Perché?
  3. Ora si preme I per modificare la modalità di modifica, appare la punta dell'inchiostro.
  4. Premi di nuovo E per resistere alla gomma.Vedrai quella forma di gomma è stata cambiata.

    Perché non dopo aver premuto + segno?

È stato utile?

Soluzione

Dal Aiuto :

"Se si modifica la gomma da cancellare, il cursore reso sull'Inkcanvas non viene aggiornato fino a quando il prossimo modifica di modifica."

Ho testato il seguente codice e funziona bene:

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;
}
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top