Speichern von Freihandeingaben

Die Save-Methoden unterstützen das Speichern von Freihandeingaben als ISF (Ink Serialized Format). Konstruktoren für die StrokeCollection-Klasse bieten Unterstützung für das Lesen von Freihanddaten.

Freihandspeicherung und -abruf

In diesem Abschnitt wird erläutert, wie Sie Freihandeingaben auf der WPF-Plattform speichern und abrufen.

Im folgenden Beispiel wird ein Ereignishandler für das Klicken auf eine Schaltflächen implementiert, der dem Benutzer ein Dialogfeld zum Speichern von Dateien anzeigt und die Freihandeingabe aus einem InkCanvas-Element in einer Datei speichert.

private void buttonSaveAsClick(object sender, RoutedEventArgs e)
{
    SaveFileDialog saveFileDialog1 = new SaveFileDialog();
    saveFileDialog1.Filter = "isf files (*.isf)|*.isf";

    if (saveFileDialog1.ShowDialog() == true)
    {
        FileStream fs = new FileStream(saveFileDialog1.FileName,
                                       FileMode.Create);
        theInkCanvas.Strokes.Save(fs);
        fs.Close();
    }
}
Private Sub buttonSaveAsClick(ByVal sender As Object, ByVal e As RoutedEventArgs) 

    Dim saveFileDialog1 As New SaveFileDialog()
    saveFileDialog1.Filter = "isf files (*.isf)|*.isf"

    If saveFileDialog1.ShowDialog() Then
        Dim fs As New FileStream(saveFileDialog1.FileName, FileMode.Create)
        theInkCanvas.Strokes.Save(fs)
        fs.Close()
    End If

End Sub

Im folgenden Beispiel wird ein Ereignishandler für das Klicken auf eine Schaltflächen implementiert, der dem Benutzer ein Dialogfeld zum Öffnen von Dateien anzeigt und die Freihandeingabe aus der Datei in ein InkCanvas-Element liest.

private void buttonLoadClick(object sender, RoutedEventArgs e)
{
    OpenFileDialog openFileDialog1 = new OpenFileDialog();
    openFileDialog1.Filter = "isf files (*.isf)|*.isf";

    if (openFileDialog1.ShowDialog() == true)
    {
        FileStream fs = new FileStream(openFileDialog1.FileName,
                                       FileMode.Open);
        theInkCanvas.Strokes = new StrokeCollection(fs);
        fs.Close();
    }
}
Private Sub buttonLoadClick(ByVal sender As Object, ByVal e As RoutedEventArgs) 

    Dim openFileDialog1 As New OpenFileDialog()
    openFileDialog1.Filter = "isf files (*.isf)|*.isf"

    If openFileDialog1.ShowDialog() Then
        Dim fs As New FileStream(openFileDialog1.FileName, FileMode.Open)
        theInkCanvas.Strokes = New StrokeCollection(fs)
        fs.Close()
    End If

End Sub

Weitere Informationen