Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, 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

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: Esempio di controllo InkCanvas

In Windows Presentation Foundation è disponibile un controllo chiamato InkCanvas, sul quale è possibile disegnare in maniera analoga a come si fa col pennino dei Tablet PC. Utilizzerò Visual Basic 2008 Express, ma lo XAML è identico in Visual C# e le pochissime righe di codice managed illustrate si traducono con estrema facilità. Dopo aver creato il nostro nuovo progetto, digitate questo codice XAML:

    <Grid>

        <InkCanvas Margin="10,10,10,50" Name="Ink1" />

       

        <StackPanel VerticalAlignment="Bottom" Orientation="Horizontal">

            <Button Height="30" Width="100" Margin="10,10,10,10" Name="ClearButton" Click="OnClearButtonClick">

                _Cancella

            </Button>

           

            <Button Height="30" Width="100" Margin="10,10,10,10" Name="SaveButton" Click="OnSaveButtonClick">

                _Salva

            </Button>

 

        </StackPanel>

    </Grid>

In questo modo abbiamo disegnato un controllo InkCanvas al quale abbiamo assegnato l'identificatore Ink1 per il successivo utilizzo via codice. Lo StackPanel successivo contiene due pulsanti, uno per cancellare il contenuto del controllo e uno per salvare il contenuto stesso. Passiamo poi a implementare i due gestori degli eventi Click dei pulsanti, attraverso il file di code-behind, nel quale digiteremo (come esempio) quanto segue:

    Private Sub OnClearButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)

        Ink1.Strokes.Clear()

    End Sub

 

 

    Private Sub OnSaveButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)

        Dim inkStream As New IO.FileStream("c:\prova.ink", IO.FileMode.CreateNew)

 

        Ink1.Strokes.Save(inkStream)

 

        inkStream.Close()

    End Sub

Per agire sul controllo si utilizza la proprietà Strokes. Il metodo Clear cancella il contenuto, mentre il metodo Save memorizza il contenuto dell'InkCanvas su uno stream, che dovremo ricordare di chiudere al termine. Il metodo Save, inoltre, espone un overload che consente di sfruttare un algoritmo di compressione dello stream.

La seguente figura vi mostra un piccolo esempio del lavoro di cui sopra:

Alessandro

Print | posted on sabato 29 dicembre 2007 14:43 | Filed Under [ Windows Presentation Foundation ]

Powered by:
Powered By Subtext Powered By ASP.NET