闲来没事。做个了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!