Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1908, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

WPF: salvare e caricare il contenuto di un InkCanvas

Il controllo InkCanvas fornisce, alle applicazioni WPF, una superficie su cui è possibile disegnare e scrivere sia col mouse, che col touch che con una penna capacitiva.

E' quindi un fedele compagno se scrivete applicazioni desktop che girano su dispositivi come i tablet con Windows 8.1.

Salvare il suo contenuto su disco e ricaricarlo è un'operazione piuttosto semplice, dal momento che la collezione di "tratti" definita Strokes espone un metodo Save e che al contrario può essere popolata con il contenuto di uno stream. Ecco il codice Visual Basic, con relativi commenti:

    Private Sub SaveButton_Click(sender As Object, e As RoutedEventArgs)
        
'Istanza di una dialog di salvataggio
        
Dim SaveFileDialog1 As New Microsoft.Win32.SaveFileDialog()
        
'Il filtro è a propria discrezione
        SaveFileDialog1.Filter = 
"File Ink (*.ink)|*.ink"

        
If SaveFileDialog1.ShowDialog() Then

            
'Si apre uno stream binario in scrittura
            
Using fs As New System.IO.FileStream(SaveFileDialog1.FileName, _
                          System.IO.
FileMode.Create)

                
'Si invoca il metodo Save della collection Strokes sullo stream
                
Me.Ink1.Strokes.Save(fs)
            
End Using
        
End If
    
End Sub

    
Private Sub LoadButton_Click(sender As Object, e As RoutedEventArgs)
        
'Istanza di una dialog di apertura
        
Dim OpenFileDialog1 As New Microsoft.Win32.OpenFileDialog()
        
'Il filtro è a propria discrezione
        OpenFileDialog1.Filter = 
"File Ink (*.ink)|*.ink"

        
If OpenFileDialog1.ShowDialog() Then
            
'Si apre uno stream binario in lettura
            
Using fs As New System.IO.FileStream(OpenFileDialog1.FileName, _
                          System.IO.
FileMode.Open)
                
'Si popola la collezione dell'InkCanvas con
                
'una StrokeCollection popolata col contenuto dello stream
                
Me.Ink1.Strokes = New Ink.StrokeCollection(fs)
            
End Using
        
End If
    
End Sub
Alessandro

Print | posted on lunedì 3 marzo 2014 18:06 | Filed Under [ Windows Presentation Foundation ]

Powered by:
Powered By Subtext Powered By ASP.NET