Mega Code Archive

 
Categories / Silverlight / UI Controls
 

Video marker

<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'>   <StackPanel Margin="10">     <MediaElement Margin="10,0" x:Name="media" Source="test.wmv" MarkerReached="media_MarkerReached" MediaOpened="media_MediaOpened"></MediaElement>     <TextBlock Visibility="Collapsed" Margin="10" x:Name="lblMarker"></TextBlock>     <TextBlock Margin="10">Markers:</TextBlock>     <ListBox Margin="10,0" x:Name="lstMarkers" SelectionChanged="lstMarkers_SelectionChanged"></ListBox>   </StackPanel> </UserControl> //File: Page.xaml.cs using System; using System.Collections.Generic; using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; namespace SilverlightApplication3 {     public partial class MainPage : UserControl     {         public MainPage()         {             InitializeComponent();         }         private void media_MarkerReached(object sender, TimelineMarkerRoutedEventArgs e)         {             lblMarker.Text = e.Marker.Text + " at " + e.Marker.Time.TotalSeconds + " seconds";         }         private void media_MediaOpened(object sender, RoutedEventArgs e)         {             lstMarkers.DisplayMemberPath = "DisplayText";                         foreach (TimelineMarker marker in media.Markers)             {                 lstMarkers.Items.Add(new MarkerInfo(marker));             }                     }         private void lstMarkers_SelectionChanged(object sender, SelectionChangedEventArgs e)         {             MarkerInfo markerInfo = (MarkerInfo)lstMarkers.SelectedItem;                   media.Position = markerInfo.Marker.Time;             media.Play();         }     }     public class MarkerInfo     {         public TimelineMarker Marker         {             get;             set;         }         public string DisplayText         {             get             {                 return Marker.Text + " (" + Marker.Time.Minutes + ":" + Marker.Time.Seconds + ":" +                      Marker.Time.Milliseconds + ")";             }         }         public MarkerInfo(TimelineMarker marker)         {             Marker = marker;         }     } }