Play Audio Asynchronously

image_pdfimage_print


   
  
<Window x:Class="SoundAndVideo.SoundPlayerTest"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="SoundPlayerTest" Height="300" Width="300" Closed="window_Closed">
    <StackPanel>
       <Button Click="cmdPlayAudioAsync_Click">Play Audio Asynchronously</Button>
    </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.Media;
using System.ComponentModel;
using System.IO;

namespace SoundAndVideo
{
    public partial class SoundPlayerTest : System.Windows.Window
    {
        MediaPlayer player = new MediaPlayer();

        public SoundPlayerTest()
        {
            InitializeComponent();
        }
        private void cmdPlayAudioAsync_Click(object sender, RoutedEventArgs e)
        {
            SoundPlayer player = new SoundPlayer();
            player.SoundLocation = "test.wav";
            player.Load();
            player.Play();
        }

        private void window_Closed(object sender, EventArgs e)
        {
            player.Close();
        }
    }
}

   
    
     


Play System Sounds

image_pdfimage_print


   
  

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WPF" Height="120" Width="300">
    <StackPanel>
        <StackPanel.Resources>
            <Style TargetType="{x:Type Button}">
                <EventSetter Event="Click" Handler="Button_Click" />
            </Style>
        </StackPanel.Resources>
        <Button Content="Asterisk" Name="btnAsterisk" />
        <Button Content="Beep" Name="btnBeep" />
        <Button Content="Exclamation" Name="btnExclamation" />
        <Button Content="Hand" Name="btnHand" />
        <Button Content="Question" Name="btnQuestion" />
    </StackPanel>
</Window>
//File:Window.xaml.cs

using System.Windows;
using System.Windows.Controls;

namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Button btn = sender as Button;

            if (btn != null)
            {
                switch (btn.Content.ToString())
                {
                    case "Asterisk":
                        System.Media.SystemSounds.Asterisk.Play();
                        break;
                    case "Beep":
                        System.Media.SystemSounds.Beep.Play();
                        break;
                    case "Exclamation":
                        System.Media.SystemSounds.Exclamation.Play();
                        break;
                    case "Hand":
                        System.Media.SystemSounds.Hand.Play();
                        break;
                    case "Question":
                        System.Media.SystemSounds.Question.Play();
                        break;
                    default:
                        string msg = "Sound not implemented: " + btn.Content;
                        MessageBox.Show(msg);
                        break;
                }
            }
        }
    }
}

   
    
     


File menu

image_pdfimage_print


   
    


<Window x:Class="ControlDemos.menu"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ControlDemos" Height="300" Width="300">
    <Grid>
      <Menu Width="30" Margin="10, 10, 5, 5" HorizontalAlignment="Left" Background="White">
        <MenuItem Header="_File">
          <MenuItem Header="_New" IsCheckable="true"/>
          <MenuItem Header="_Open" IsCheckable="true"/>
          <MenuItem Header="_Close" IsCheckable="true"/>
          <Separator/>
          <MenuItem Header="Open Previous">
            <MenuItem Header="Word Documents" />
            <MenuItem Header="Source Code" >
              <MenuItem Header="C# Files" />
            </MenuItem>
          </MenuItem>
          <Separator/>
          <MenuItem Header="E_xit">
          </MenuItem>
        </MenuItem>
      </Menu>

  </Grid>
</Window>

   
    
    
    
     


Menu and MenuItem

image_pdfimage_print


   
    

<Window x:Class="SimpleStyles.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="SimpleStyles"
  Background="#F8F8F8">
  <ScrollViewer>
    <WrapPanel>
      <HeaderedItemsControl Header="Menu / ContextMenu">
        <Menu Margin="8" Width="400">
          <MenuItem Header="Top One">
            <MenuItem Header="Sub One" InputGestureText="Ctrl+L" />
            <MenuItem Header="Sub Two (With an Icon)" InputGestureText="Ctrl+A">
              <MenuItem.Icon>
                <Ellipse Width="16" Height="16" Fill="LightBlue" />
              </MenuItem.Icon>
            </MenuItem>
            <MenuItem Header="Sub Three" />
            <Separator />
            <MenuItem Header="Sub Four">
              <MenuItem Header="Sub One" />
              <MenuItem Header="Sub Two" />
              <MenuItem Header="Sub Three" />
            </MenuItem>
            <MenuItem Header="Sub Five" />
          </MenuItem>
          <MenuItem Header="Top Two">
            <MenuItem Header="Sub One" />
            <MenuItem Header="Sub Tow (Checkable)" IsCheckable="True" />
            <MenuItem Header="Sub Three" />
            <Separator />
            <MenuItem Header="Sub Four">
              <MenuItem Header="Sub One" />
              <MenuItem Header="Sub Two" />
              <MenuItem Header="Sub Three" />
            </MenuItem>
            <MenuItem Header="Sub Five" />
          </MenuItem>
          <MenuItem Header="Top Three" >
            <MenuItem Header="Sub One" />
            <MenuItem Header="Sub Two" />
            <MenuItem Header="Sub Three" />
            <Separator />
            <MenuItem Header="Sub Five" />
          </MenuItem>
        </Menu>
      </HeaderedItemsControl>
   
    </WrapPanel>
  </ScrollViewer>
</Window>

   
    
    
    
     


Menu With Sub heading

image_pdfimage_print


   
    
<Window x:Class="MenusAndToolbars.MenuWithSubheading"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MenuWithSubheading" Height="300" Width="300">
    <Grid>
      <Grid.RowDefinitions>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition></RowDefinition>
      </Grid.RowDefinitions>
      
        <Menu>
          <MenuItem Header="File">
            <MenuItem Header="New"></MenuItem>
            <MenuItem Header="Open"></MenuItem>
            <MenuItem Header="Save"></MenuItem>
            <Separator></Separator>
            <MenuItem Header="Exit"></MenuItem>
          </MenuItem>
          <MenuItem Header="Edit">
            <MenuItem Header="Undo"></MenuItem>
            <MenuItem Header="Redo"></MenuItem>
            <Separator>
              <Separator.Template>
                <ControlTemplate>
                  <Border CornerRadius="2" Padding="5" BorderBrush="Black" BorderThickness="1" Background="PaleGoldenrod">
                    <TextBlock FontWeight="Bold">
                      Editing Commands
                    </TextBlock>
                  </Border>
                </ControlTemplate>
              </Separator.Template>
            </Separator>
            <MenuItem Header="Cut"></MenuItem>
            <MenuItem Header="Copy"></MenuItem>
            <MenuItem Header="Paste"></MenuItem>
          </MenuItem>

        </Menu>
      
    </Grid>
</Window>

   
    
    
    
     


Using MediaElement for Audio

image_pdfimage_print


   
   

<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <MediaElement x:Name="audio"/>
  <Button>A Button With Sounds
    <Button.Triggers>
      <EventTrigger RoutedEvent="Button.Click">
        <EventTrigger.Actions>
          <BeginStoryboard>
            <Storyboard>
              <MediaTimeline Source="click.wav" Storyboard.TargetName="audio"/>
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger.Actions>
      </EventTrigger>
      <EventTrigger RoutedEvent="Button.MouseEnter">
        <EventTrigger.Actions>
          <BeginStoryboard>
            <Storyboard>
              <MediaTimeline Source="hover.wav" Storyboard.TargetName="audio"/>
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger.Actions>
      </EventTrigger>
    </Button.Triggers>
  </Button>
</Canvas>

   
    
    
     


Overlapping Videos with Effects

image_pdfimage_print


   
   
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <MediaElement Source="C:video.wmv" Opacity="0.5">
    <MediaElement.Clip>
      <EllipseGeometry Center="220,220" RadiusX="220" RadiusY="220"/>
    </MediaElement.Clip>
    <MediaElement.LayoutTransform>
      <RotateTransform Angle="180"/>
    </MediaElement.LayoutTransform>
  </MediaElement>
  <MediaElement Source="C:video.wmv" Opacity="0.5">
    <MediaElement.Clip>
      <EllipseGeometry Center="220,220" RadiusX="220" RadiusY="220"/>
    </MediaElement.Clip>
  </MediaElement>
</Canvas>