Mega Code Archive

 
Categories / Silverlight / UI Controls
 

XAML File That Defines a MediaElement Control with Playback Button and a Progress Slider Control

<UserControl x:Class='SilverlightApplication3.MainPage'     xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'      xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'     xmlns:d='http://schemas.microsoft.com/expression/blend/2008'      xmlns:mc='http://schemas.openxmlformats.org/markup-compatibility/2006'      mc:Ignorable='d'      d:DesignWidth='640'      d:DesignHeight='480'>      <Grid x:Name="LayoutRoot" Background="White">          <Canvas Height="300" Width="300"                   HorizontalAlignment="Center"                   VerticalAlignment="Center">               <Border Height="300" Width="300"                      BorderBrush="DarkGray" BorderThickness="6"/>              <MediaElement x:Name="myMovie"                            Source="/movie1.wmv"/>              <TextBlock x:Name="txtPosition" Foreground="White"/>              <Slider x:Name="timeSlide" Maximum="1" Canvas.Top="220" Canvas.Left="45" />              <Button x:Name="playButton" Content="Play"/>               <Button x:Name="pauseButton" Content="Pause" />               <Button x:Name="stopButton" Content="Stop"/>          </Canvas>      </Grid>  </UserControl> //File: Page.xaml.cs  using System;  using System.Windows;  using System.Windows.Controls;  using System.Windows.Input;  using System.Windows.Media;  using System.Windows.Media.Animation;  using System.Windows.Threading;  namespace SilverlightApplication3  {      public partial class MainPage : UserControl      {          DispatcherTimer timer;          public MainPage()           {              InitializeComponent();              playButton.Click += new RoutedEventHandler(playMovie);              pauseButton.Click += new RoutedEventHandler(pauseMovie);              stopButton.Click += new RoutedEventHandler(stopMovie);              myMovie.MediaEnded += new RoutedEventHandler(myMovie_MediaEnded);              timer = new DispatcherTimer();              timer.Interval = new TimeSpan(0, 0, 0, 0, 500);              timer.Tick += new EventHandler(time_Tick);              timer.Start();           }          void time_Tick(object sender, EventArgs e)          {             txtPosition.Text = myMovie.Position.ToString();             timeSlide.Value = myMovie.Position.TotalMilliseconds / myMovie.NaturalDuration.TimeSpan.TotalMilliseconds;          }          void myMovie_MediaEnded(object sender, RoutedEventArgs e)          {              myMovie.Stop();          }          void playMovie(object sender, RoutedEventArgs e)          {              myMovie.Play();          }          void pauseMovie(object sender, RoutedEventArgs e)          {              myMovie.Pause();          }          void stopMovie(object sender, RoutedEventArgs e)          {              myMovie.Stop();          }      }  }