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

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: Un pulsante con video all'interno

L'esperimento di oggi con Windows Presentation Foundation riprende quello di qualche giorno fa, in cui avevamo inserito un'immagine statica inclinata e contornata da un bordo in un pulsante.

Oggi riprendiamo lo stesso pulsante, ma faremo in modo che, quando l'utente fa click, venga avviata la riproduzione di un video all'interno della stessa cornice utilizzata la volta scorsa.

Quindi, apriamo Visual Studio 2005 e creiamo un progetto WPF (Visual Basic o C#, come preferite). All'interno dell'editor di codice XAML, digitiamo quanto segue (eliminando il contenitore Grid, io preferisco usare lo StackPanel per uniformità coi tutorial che trovo):

    <StackPanel>
      <Button Margin="46,75,47,81" Name="Button1" Click="PlayVideo">
        <Border BorderThickness="5" Height="70" Width="120" BorderBrush="Salmon" HorizontalAlignment="Center" 
             VerticalAlignment="Center">
          <Border.LayoutTransform>
            <RotateTransform Angle="15" />
          <Border.LayoutTransform>
          <MediaElement Name="Video1" LoadedBehavior="Manual"> MediaElement>
        Border>
      Button>
    StackPanel>

Come potete osservare, al posto dell'immagine abbiamo aggiunto un controllo MediaElement che consente di riprodurre video, senza ricorrere a componenti esterni. Bello no? :-) La proprietà LoadedBehavior impostata su Manual sta a significare che decideremo noi quando avviare la riproduzione del video tramite codice, altrimenti la riproduzione partirebbe in automatico (se è stato specificato il video da riprodurre tramite la proprietà Source).

In secondo luogo, per il controllo Button abbiamo specificato un evento Click. In questo modo, quando l'utente clicca sul pulsante, verrà richiamato il gestore degli eventi chiamato PlayVideo, che sarà implementato da codice.

Ora si passa a modificare il file di code behind, quello, per intenderci, chiamato Window1.xaml.vb o Window1.xaml.cs (se al progetto non avete assegnato un altro nome).

Il codice da inserire è il seguente:

VB:

    Private Sub PlayVideo(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Video1.Source = New Uri("MyVideo.wmv")
        Video1.Play()
    End Sub

C#:

        private void PlayVideo(object sender, RoutedEventArgs e)
        {
        Video1.Source = new Uri("MyVideo.wmv");
        Video1.Play();
        }

Ovviamente, dovrete sostituire il video con il percorso di un file valido. Notate che la proprietà Source del controllo MediaElement accetta un valore di tipo Uri e non una stringa. Perfetto. Avviate l'applicazione e cliccate sul pulsante. Magia! Il video viene avviato all'interno del riquadro! ;-)

Questo è il risultato (che voi vedrete in movimento!):

Questo esempio è volutamente semplice, potreste voler implementare un metodo in grado di mettere in pausa o fermare la riproduzione del video (rispettivamente metodi Pause e Stop del controllo MediaElement).

Carino, vero? :D

Alessandro

Print | posted on giovedì 19 luglio 2007 21:05 | Filed Under [ Windows Presentation Foundation ]

Powered by:
Powered By Subtext Powered By ASP.NET