Mega Code Archive

 
Categories / C# / WPF
 

Animated Video Window

<Window x:Class="SoundAndVideo.AnimatedVideoWindow"     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     Title="AnimatedVideoWindow" Height="450" Width="400">   <Window.Resources>     <Storyboard x:Key="MediaStoryboardResource">       <MediaTimeline Storyboard.TargetName="media" Source="test.mpg" FillBehavior="HoldEnd"                       RepeatBehavior="Forever"></MediaTimeline>       <DoubleAnimation Storyboard.TargetName="media" Storyboard.TargetProperty="(MediaElement.RenderTransform).(RotateTransform.Angle)"     To="360" Duration="0:0:2" RepeatBehavior="Forever"></DoubleAnimation>     </Storyboard>   </Window.Resources>   <StackPanel>     <StackPanel.Triggers>       <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="cmdPlay">         <EventTrigger.Actions>           <BeginStoryboard Name="MediaStoryboard" Storyboard="{StaticResource MediaStoryboardResource}"/>         </EventTrigger.Actions>       </EventTrigger>       <EventTrigger RoutedEvent="ButtonBase.Click" SourceName="cmdStop">         <EventTrigger.Actions>           <StopStoryboard BeginStoryboardName="MediaStoryboard"/>         </EventTrigger.Actions>       </EventTrigger>           </StackPanel.Triggers>       <Button Name="cmdPlay">Play (Declarative)</Button>       <Button Name="cmdStop">Stop (Declarative)</Button>       <Button Click="cmdPlayCode_Click">Play (Code)</Button>     <MediaElement Name="media" Grid.Row="1" Stretch="None" RenderTransformOrigin="0.5,0.5" >       <MediaElement.RenderTransform>         <RotateTransform></RotateTransform>       </MediaElement.RenderTransform>     </MediaElement>   </StackPanel> </Window> //File:Window.xaml.cs using System; using System.Collections.Generic; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Windows.Media.Animation; namespace SoundAndVideo {     public partial class AnimatedVideoWindow : System.Windows.Window     {         public AnimatedVideoWindow()         {             InitializeComponent();         }         private void cmdPlayCode_Click(object sender, RoutedEventArgs e)         {             MediaTimeline timeline = new MediaTimeline(new Uri("test.mpg", UriKind.Relative));                         timeline.RepeatBehavior = RepeatBehavior.Forever;             MediaClock clock = timeline.CreateClock();             MediaPlayer player = new MediaPlayer();             player.Clock = clock;             VideoDrawing videoDrawing = new VideoDrawing();             videoDrawing.Rect = new Rect(150, 0, 100, 100);             videoDrawing.Player = player;             DrawingBrush brush = new DrawingBrush(videoDrawing);             this.Background = brush;             clock.Controller.Begin();         }     } }