WPF 媒体播放器

闲来没事。做个了WPF媒体播放器。大体实现了:

一、重新画了窗体,由于美工做的不好,重画的也不是很好看O(∩_∩)O~读者可以参考这个画出更好。

二、可以往右侧列表中拖动音频及视频,双击播放。

三、实现了一个动画,只有运行程序才能看到效果(⊙o⊙)哦

四、简单实现了按钮模板化

总之,实现了播放器的基本功能。现在拿出来分享下。程序运行效果图 如下:

 

 

xaml文件如下:

<Window

        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" x:Name="window" mc:Ignorable="d" x:Class="声音和视频.MainWindow"

        Title="媒体播放器" Height="350" Width="525" WindowStartupLocation="CenterScreen"AllowsTransparency="True" WindowStyle="None" Background="#001A1818" ResizeMode="CanResizeWithGrip" Icon="pack://siteoforigin:,,,/res/Speaker.ico">

<Window.Resources>

<!--ListBox样式-->

        <!--ListBoxItem样式-->

        <Style TargetType="ListBoxItem">

            <Setter Property="Foreground" Value="#FF2570AB"/>

<Setter Property="FontSize" Value="12"></Setter>

            <Setter Property="Height" Value="22"/>

            <Setter Property="Template">

                <Setter.Value>

                    <ControlTemplate TargetType="ListBoxItem">

                        <Border Name="back"  BorderBrush="#F8F7F5"  BorderThickness="0,1,0,1">

                            <Border.Background>

                                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">

                                    <GradientBrush.GradientStops>

                                        <GradientStopCollection>

                                            <GradientStop Color="#F8F7F5" Offset="0.0"/>

                                            <GradientStop Color="#F8F7F5" Offset="0.5"/>

                                            <GradientStop Color="#F8F7F5" Offset="0.51"/>

                                            <GradientStop Color="#F8F7F5" Offset="1"/>

                                        </GradientStopCollection>

                                    </GradientBrush.GradientStops>

                                </LinearGradientBrush>

                            </Border.Background>

                            <ContentPresenter Margin="2" VerticalAlignment="Center"/>

                        </Border>

                        <ControlTemplate.Triggers>

                            <Trigger Property="IsSelected" Value="True">

                                <Trigger.EnterActions>

                                    <BeginStoryboard>

                                        <Storyboard>

                                            <DoubleAnimation To="32" Duration="0:0:0.3" Storyboard.TargetProperty="Height"/>

                                            <ColorAnimation To="#F3C37C" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" />

                                            <ColorAnimation To="#952B00" Duration="0:0:0.2" Storyboard.TargetProperty="(ListBoxItem.Foreground).(SolidColorBrush.Color)" />

                                            <ColorAnimation To="#FFF" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" />

                                            <ColorAnimation To="#FFEF99" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" />

                                            <ColorAnimation To="#FFE13F" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[2].(GradientStop.Color)" />

                                            <ColorAnimation To="#FFF3B0" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[3].(GradientStop.Color)" />

                                        </Storyboard>

                                    </BeginStoryboard>

                                </Trigger.EnterActions>

                                <Trigger.ExitActions>

                                    <BeginStoryboard>

                                        <Storyboard>

                                            <DoubleAnimation BeginTime="0:0:0.4" Duration="0:0:0.2" Storyboard.TargetProperty="Height"/>

                                            <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" />

                                            <ColorAnimation Duration="0:0:0.2" Storyboard.TargetProperty="(ListBoxItem.Foreground).(SolidColorBrush.Color)" />

                                            <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" />

                                            <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" />

                                            <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[2].(GradientStop.Color)" />

                                            <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[3].(GradientStop.Color)" />

                                        </Storyboard>

                                    </BeginStoryboard>

                                </Trigger.ExitActions>

                            </Trigger>

                            <Trigger Property="IsMouseOver" Value="True">

                                <Trigger.EnterActions>

                                    <BeginStoryboard>

                                        <Storyboard>

                                            <ColorAnimation To="#D8E6F5" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" />

                                            <ColorAnimation To="#617A98" Duration="0:0:0.2" Storyboard.TargetProperty="(ListBoxItem.Foreground).(SolidColorBrush.Color)" />

                                            <ColorAnimation To="#F6F9FD" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" />

                                            <ColorAnimation To="#E0EBF7" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" />

                                            <ColorAnimation To="#D7E5F6" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[2].(GradientStop.Color)" />

                                            <ColorAnimation To="#F6F9FD" Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[3].(GradientStop.Color)" />

                                        </Storyboard>

                                    </BeginStoryboard>

                                </Trigger.EnterActions>

                                <Trigger.ExitActions>

                                    <BeginStoryboard>

                                        <Storyboard>

                                            <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" />

                                            <ColorAnimation Duration="0:0:0.2" Storyboard.TargetProperty="(ListBoxItem.Foreground).(SolidColorBrush.Color)" />

                                            <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[0].(GradientStop.Color)" />

                                            <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[1].(GradientStop.Color)" />

                                            <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[2].(GradientStop.Color)" />

                                            <ColorAnimation Duration="0:0:0.2" Storyboard.TargetName="back" Storyboard.TargetProperty="(Border.Background).(LinearGradientBrush.GradientStops)[3].(GradientStop.Color)" />

                                        </Storyboard>

                                    </BeginStoryboard>

                                </Trigger.ExitActions>

                            </Trigger>

                        </ControlTemplate.Triggers>

                    </ControlTemplate>

                </Setter.Value>

            </Setter>

        </Style>

        <Style x:Key="btnStyle" >

            <Setter Property="Control.Background">

                <Setter.Value>

                    <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">

                        <GradientStop Offset="0" Color="White"/>

                        <GradientStop Offset="0.5" Color="#FF554D4A"/>

                    </LinearGradientBrush>

                </Setter.Value>

            </Setter>

            <Setter Property="Control.FontStyle" Value="Italic"/>

            <Setter Property="Control.Margin" Value="5"/>

            <Setter Property="Control.Width" Value="60"/>

            <Setter Property="Control.Foreground" Value="Gold"/>

            <Style.Triggers>

                <Trigger Property="Button.IsMouseOver" Value="True">

                    <Setter Property="Control.Foreground" Value="Black"/>

                </Trigger>

            </Style.Triggers>

        </Style>

    

    <Storyboard x:Key="OnClick1">

<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" Storyboard.TargetName="mediaCenter">

<EasingDoubleKeyFrame KeyTime="0:0:2" Value="0"/>

</DoubleAnimationUsingKeyFrames>

<PointAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransformOrigin)" Storyboard.TargetName="mediaCenter">

<EasingPointKeyFrame KeyTime="0:0:2" Value="0.5,0.5"/>

</PointAnimationUsingKeyFrames>

<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" Storyboard.TargetName="mediaCenter">

<EasingDoubleKeyFrame KeyTime="0:0:2" Value="0"/>

<EasingDoubleKeyFrame KeyTime="0:0:4" Value="1"/>

</DoubleAnimationUsingKeyFrames>

<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" Storyboard.TargetName="mediaCenter">

<EasingDoubleKeyFrame KeyTime="0:0:2" Value="1"/>

</DoubleAnimationUsingKeyFrames>

<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[1].(SkewTransform.AngleX)" Storyboard.TargetName="mediaCenter">

<EasingDoubleKeyFrame KeyTime="0:0:2" Value="0"/>

</DoubleAnimationUsingKeyFrames>

<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[1].(SkewTransform.AngleY)" Storyboard.TargetName="mediaCenter">

<EasingDoubleKeyFrame KeyTime="0:0:2" Value="0"/>

</DoubleAnimationUsingKeyFrames>

</Storyboard>

    <Storyboard x:Key="OnLoaded1">

    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Height)" Storyboard.TargetName="window">

    <EasingDoubleKeyFrame KeyTime="0" Value="30"/>

    <EasingDoubleKeyFrame KeyTime="0:0:0.45" Value="30"/>

    <EasingDoubleKeyFrame KeyTime="0:0:0.9" Value="358"/>

    </DoubleAnimationUsingKeyFrames>

    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Width)" Storyboard.TargetName="window">

    <EasingDoubleKeyFrame KeyTime="0" Value="0"/>

    <EasingDoubleKeyFrame KeyTime="0:0:0.45" Value="520"/>

    </DoubleAnimationUsingKeyFrames>

    </Storyboard>

</Window.Resources>

<Window.Triggers>

<EventTrigger RoutedEvent="FrameworkElement.Loaded">

<BeginStoryboard x:Name="OnLoaded1_BeginStoryboard" Storyboard="{StaticResource OnLoaded1}"/>

</EventTrigger>

</Window.Triggers>

<Border BorderThickness="1,2" BorderBrush="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" CornerRadius="5">

<Grid>

<Grid.RowDefinitions>

<RowDefinition Height="27.708"/>

<RowDefinition/>

<RowDefinition Height="30.238"/>

</Grid.RowDefinitions>

<Grid.ColumnDefinitions>

<ColumnDefinition Width="0.717*"/>

<ColumnDefinition Width="0.283*"/>

</Grid.ColumnDefinitions>

<Grid Grid.Row="0" Grid.ColumnSpan="2" x:Name="top" MouseLeftButtonDown="top_MouseLeftButtonDown" Opacity="0.9">

<Grid.Background>

<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">

<GradientStop Color="Black" Offset="0"/>

<GradientStop Color="#FF896363" Offset="1"/>

</LinearGradientBrush>

</Grid.Background>

        

<TextBlock Text="S-Player" HorizontalAlignment="Left"  Margin="8,0,0,0" VerticalAlignment="Center" FontSize="20">

<TextBlock.OpacityMask>

<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">

<GradientStop Color="Black" Offset="0"/>

<GradientStop Color="#FF0095FF" Offset="1"/>

</LinearGradientBrush>

</TextBlock.OpacityMask>

<TextBlock.Foreground>

<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">

<GradientStop Color="Black" Offset="0"/>

<GradientStop Color="#FF56BCB1" Offset="1"/>

<GradientStop Color="#FF31ADA0" Offset="0.474"/>

</LinearGradientBrush>

</TextBlock.Foreground>

</TextBlock>

   <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">

   <Button Width="25"  FontStyle="Normal" Style="{StaticResource btnStyle}" Height="25" Margin="1" Name="btnMinSrc">一</Button>

                    <Button Width="25"   FontStyle="Normal" Style="{StaticResource btnStyle}" Height="25" Margin="1" Name="btnMaxSrc" Click="btnMaxSrc_Click">口</Button>

<Button Width="25" FontStyle="Normal" Style="{StaticResource btnStyle}" Height="25" Margin="1" Click="Button_Click">X</Button>   

</StackPanel>

</Grid>

<Grid Grid.Row="1" Grid.Column="0"  x:Name="mediaCenter" RenderTransformOrigin="0.5,0.5" d:IsLocked="True">

<Grid.RenderTransform>

<TransformGroup>

<ScaleTransform/>

<SkewTransform/>

<RotateTransform/>

<TranslateTransform/>

</TransformGroup>

</Grid.RenderTransform>

 <Border x:Name="mediaBorder" BorderThickness="2" Background="DarkGray"   >

                <Border.BorderBrush>

                    <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">

                        <GradientStop Color="#FF3C2B45"/>

                        <GradientStop Offset="0.5" Color="#FF68665B"/>

                    </LinearGradientBrush>

                </Border.BorderBrush>

                <MediaElement   Stretch="Fill" Name="mediaElement"  

                       LoadedBehavior="Manual"   Volume="{Binding ElementName=volumeSlider, Path=Value}"

                      MouseLeftButtonUp="mediaElement_MouseLeftButtonUp"

                     />

            </Border>

</Grid>

<GridSplitter Grid.Row="1" Grid.Column="0" Width="2" Background="#FF815F5F"></GridSplitter>

<Grid x:Name="mediaList" Grid.Row="1" Grid.Column="1" Background="#FF6F5151" >

<TabControl Background="#FF7E5B5B" Foreground="#FF9D50D6" >

<TabItem Header="默认" Foreground="#FFC9A02B"  >

<TabItem.Background>

<LinearGradientBrush EndPoint="0,1" StartPoint="0,0">

<GradientStop Color="#FFF3F3F3" Offset="0"/>

<GradientStop Color="#FFEBEBEB" Offset="0.5"/>

<GradientStop Color="#FFDDDDDD" Offset="0.5"/>

<GradientStop Color="#FF9BACCD" Offset="1"/>

</LinearGradientBrush>

</TabItem.Background>

<ListBox x:Name="lbMediaList" Background="#FF835F5F" AllowDrop="True" Drop="lbMediaList_Drop" MouseDoubleClick="lbMediaList_MouseDoubleClick" Cursor="Hand" Foreground="#FF0C0B0B" />

</TabItem>

<TabItem Header="列表" Foreground="#FFC9A02B"></TabItem>

<TabItem Header="收藏" Foreground="#FFC9A02B"></TabItem>

</TabControl>

</Grid>

<Grid x:Name="foot" Grid.Row="2" Grid.ColumnSpan="2" Opacity="0.9">

<Grid.Background>

<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">

<GradientStop Color="Black" Offset="0"/>

<GradientStop Color="#FF937676" Offset="1"/>

</LinearGradientBrush>

</Grid.Background>

<Grid.OpacityMask>

<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">

<GradientStop Color="Black" Offset="0"/>

<GradientStop Color="#FFAF2929" Offset="1"/>

<GradientStop Color="#FFC44D4D" Offset="0.508"/>

</LinearGradientBrush>

</Grid.OpacityMask>

<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Horizontal" d:IsLocked="True">

                    <ToggleButton Name="tbtnBack" Width="35" Style="{StaticResource btnStyle}" Margin="2" Checked="tbtnBack_Checked">快退</ToggleButton>

                    <Button Name="btnPlay" Width="35" Style="{StaticResource btnStyle}" Margin="2">播放</Button>

                    <Button Name="btnStop" Width="35" Style="{StaticResource btnStyle}" Margin="2" Click="btnStop_Click">停止</Button>

                    <ToggleButton Margin="2" Width="35" Style="{StaticResource btnStyle}" Name="tbtnForword" Checked="tbtnForword_Checked">快进</ToggleButton>

                    <Button Name="btnVolume" Click="btnVolume_Click" Width="35" Height="25" Margin="2,2,2,0" Background="{x:Null}" BorderBrush="{x:Null}" BorderThickness="0">

<Image Source="pack://siteoforigin:,,,/res/Speaker.ico" Stretch="Fill" />

</Button>

                    <Slider Minimum="0" Maximum="1" Width="70" Name="volumeSlider" Background="{x:Null}" Foreground="#FF833232" Panel.ZIndex="2" Value="0.5">

                    <Slider.OpacityMask>

                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">

                    <GradientStop Color="Black" Offset="0"/>

                    <GradientStop Color="#FF9D5454" Offset="1"/>

                    </LinearGradientBrush>

                    </Slider.OpacityMask>

                    </Slider>

</StackPanel>

<StackPanel HorizontalAlignment="Right" VerticalAlignment="Center" Orientation="Horizontal">

                    <Button FontStretch="Normal" Style="{StaticResource btnStyle}" Margin="0,0,0,0" Name="btnOpenFile" Click="btnOpenFile_Click" d:IsLocked="True">打开文件</Button>

                    <Button   FontStyle="Normal" Style="{StaticResource btnStyle}"  Width="20" Margin="0,0,30,0" d:IsLocked="True">三</Button>

</StackPanel>

</Grid>

</Grid>

</Border>

</Window>


对应的后代代码如下:

using System;

using System.Collections.Generic;

using System.Linq;

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.Navigation;

using System.Windows.Shapes;

using Microsoft.WindowsAPICodePack.Shell;

using Microsoft.WindowsAPICodePack.Dialogs;



namespace 声音和视频

{

    /// <summary>

    /// MainWindow.xaml 的交互逻辑

    /// </summary>

    public partial class MainWindow : Window

    {

        List<ListBoxKeyValue> list = new List<ListBoxKeyValue>();

        int curList;

        public MainWindow()

        {

            InitializeComponent();

        }



        private void top_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)

        {

        this.DragMove();

// TODO: Add event handler implementation here.

        }



        private void Button_Click(object sender, System.Windows.RoutedEventArgs e)

        {

//this.Unloaded();

            this.Close();

// TODO: Add event handler implementation here.

        }



        private void btnOpenFile_Click(object sender, RoutedEventArgs e)

        {

            ShellContainer selectedFolder = null;

            selectedFolder = KnownFolders.SampleVideos as ShellContainer;

            CommonOpenFileDialog cfd = new CommonOpenFileDialog(); // 需要添加Microsoft.WindowsAPICodePack.dll的引用,在源码中

                                                                                                              //有,有需要可以下载。

            cfd.Multiselect = true;

            cfd.InitialDirectoryShellContainer = selectedFolder;

            cfd.EnsureReadOnly = true;

            cfd.Filters.Add(new CommonFileDialogFilter("MP3 Files", "*.mp3"));

            cfd.Filters.Add(new CommonFileDialogFilter("WMA Files", "*.wma"));

            cfd.Filters.Add(new CommonFileDialogFilter("WMV Files", "*.wmv"));

            cfd.Filters.Add(new CommonFileDialogFilter("AVI Files", "*.avi"));





            if (cfd.ShowDialog() == CommonFileDialogResult.OK)

            {

                //mediaElement.Source = new Uri(cfd.FileName, UriKind.Relative);

                foreach (string path in cfd.FileNames)

                {

                    int soundNameIndex = path.LastIndexOf(@"\");

                    string strSoundName = path.Substring(soundNameIndex + 1);

                    ListBoxKeyValue l = new ListBoxKeyValue();

                    l.Key = path;

                    l.Value = strSoundName;

                    list.Add(l);

                    //this.lbMediaList.Items.Add(path);

                }

                //playBtn.IsEnabled = true;

            }

            ShowNameInLB();

        }

//实现往播放列表托文件的功能

        private void lbMediaList_Drop(object sender, DragEventArgs e)

        {

            mediaElement.Close();

            string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false);

           

            int i;

            for (i = 0; i < s.Length; i++)

            {

                string reg = s[i].Substring(s[i].Length - 3);

                if (reg.ToLower() == "mp3" || reg.ToLower() == "wma" || reg.ToLower() == "avi" || reg.ToLower() == "rm" || reg.ToLower() == "wmv")

                {

                    ListBoxKeyValue l = new ListBoxKeyValue();

                    l.Key = s[i];

                    int soundNameIndex = s[i].LastIndexOf(@"\");

                    string strSoundName = s[i].Substring(soundNameIndex + 1);

                    l.Value = strSoundName;

                    list.Add(l);

                }

            }

            ShowNameInLB();

        }

//双击播放列表中的媒体文件播放

        private void lbMediaList_MouseDoubleClick(object sender, MouseButtonEventArgs e)

        {

            //string value = this.lbMediaList.SelectedItem.ToString();

            mediaElement.Source = new Uri(FullPath(this.lbMediaList.SelectedItem.ToString()), UriKind.Relative);

            mediaElement.Play();

        }



        private void mediaElement_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)

        {



        }



        private void tbtnBack_Checked(object sender, RoutedEventArgs e)

        {

            mediaElement.Position = mediaElement.Position - TimeSpan.FromSeconds(10);

        }



        private void tbtnForword_Checked(object sender, RoutedEventArgs e)

        {

            mediaElement.Position = mediaElement.Position + TimeSpan.FromSeconds(10);

        }



        private void btnStop_Click(object sender, RoutedEventArgs e)

        {

            mediaElement.Stop();

        }

//全屏

        private void btnMaxSrc_Click(object sender, RoutedEventArgs e)

        {

            this.Top = 0;

            this.Left = 0;

            this.Height= SystemParameters.FullPrimaryScreenHeight;

            this.Width = SystemParameters.FullPrimaryScreenWidth;

            //MaxWidth = SystemParameters.FullPrimaryScreenWidth;

            

        }



        private void mediaElement_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)

        {

            this.DragMove();

        }



        private void btnPlay_Click(object sender, RoutedEventArgs e)

        {

            if (lbMediaList.SelectedItem != null)

            {

                mediaElement.Source = new Uri(FullPath(this.lbMediaList.SelectedItem.ToString()), UriKind.Relative);

                mediaElement.Play();

                // System.Windows.Input.MediaCommands.FastForward;

            }

            else

            {

                MessageBox.Show("请从列表中选择音频文件", "提示", MessageBoxButton.OK, MessageBoxImage.Information);

            }

        }

        //返回列表框中文件的全路径

        string FullPath(string value)

        {

            string fullPath;

            foreach (ListBoxKeyValue key in list)

            {

                if (key.Value == value)

                {

                    fullPath = key.Key;

                    return fullPath;

                }

            }

            return null;

        }

        //在列表框中显示文件 名

        void ShowNameInLB()

        {

            this.lbMediaList.Items.Clear();

            foreach (ListBoxKeyValue value in list)

            {

                this.lbMediaList.Items.Add(value.Value);

            }

        }



        private void lbMediaList_DragEnter(object sender, DragEventArgs e)

        {

            mediaElement.Close();

            if (e.Data.GetDataPresent(DataFormats.FileDrop))

                e.Effects = DragDropEffects.All;

            else

                e.Effects = DragDropEffects.None; 

        }



        private void btnVolume_Click(object sender, RoutedEventArgs e)

        {



        }

    }

}

具体源码下载地址: http://download.csdn.net/source/3480336    Enjoy!


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值