<Style x:Key="btnFallback" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Border x:Name="bd" Height="50" Width="50" Background="Transparent" CornerRadius="36" BorderBrush="Gray" BorderThickness="2"> <Path x:Name="p1" Data="M576 160v320l320-320v704l-320-320v320l-352-352z" HorizontalAlignment="Center" VerticalAlignment="Center" Canvas.Top="10" Fill="Gray" Height="30" Stretch="Fill" Width="30" Canvas.Left="0" Margin="0 0 5 0"/> </Border> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="BorderBrush" TargetName="bd" Value="white"/> <Setter Property="Fill" TargetName="p1" Value="white"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="btnPlay" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Border x:Name="bd" Height="60" Width="60" Background="Transparent" CornerRadius="36" BorderBrush="Gray" BorderThickness="2"> <Path x:Name="p1" Data="M790.857 529.714l-758.857 421.714q-13.143 7.429-22.571 1.714t-9.429-20.571v-841.143q0-14.857 9.429-20.571t22.571 1.714l758.857 421.714q13.143 7.429 13.143 17.714t-13.143 17.714z" HorizontalAlignment="Center" VerticalAlignment="Center" Canvas.Top="10" Fill="Gray" Height="30" Stretch="Fill" Width="30" Canvas.Left="0" Margin="10 0 5 0"/> </Border> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="BorderBrush" TargetName="bd" Value="white"/> <Setter Property="Fill" TargetName="p1" Value="white"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="btnStop" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Border x:Name="bd" Height="60" Width="60" Background="Transparent" CornerRadius="36" BorderBrush="Gray" BorderThickness="2"> <Path x:Name="p1" Data="M877.714 109.714v804.571q0 14.857-10.857 25.714t-25.714 10.857h-292.571q-14.857 0-25.714-10.857t-10.857-25.714v-804.571q0-14.857 10.857-25.714t25.714-10.857h292.571q14.857 0 25.714 10.857t10.857 25.714zM365.714 109.714v804.571q0 14.857-10.857 25.714t-25.714 10.857h-292.571q-14.857 0-25.714-10.857t-10.857-25.714v-804.571q0-14.857 10.857-25.714t25.714-10.857h292.571q14.857 0 25.714 10.857t10.857 25.714z" HorizontalAlignment="Center" VerticalAlignment="Center" Canvas.Top="10" Fill="Gray" Height="30" Stretch="Fill" Width="30" Canvas.Left="0" Margin="5 0 5 0"/> </Border> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="BorderBrush" TargetName="bd" Value="white"/> <Setter Property="Fill" TargetName="p1" Value="white"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="btnFast" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Border x:Name="bd" Height="50" Width="50" Background="Transparent" CornerRadius="36" BorderBrush="Gray" BorderThickness="2"> <Path x:Name="p1" Data="M25.714 943.429q-10.857 10.857-18.286 7.429t-7.429-18.286v-841.143q0-14.857 7.429-18.286t18.286 7.429l405.714 405.714q4.571 4.571 7.429 10.857v-405.714q0-14.857 7.429-18.286t18.286 7.429l405.714 405.714q10.857 10.857 10.857 25.714t-10.857 25.714l-405.714 405.714q-10.857 10.857-18.286 7.429t-7.429-18.286v-405.714q-2.857 5.714-7.429 10.857z" HorizontalAlignment="Center" VerticalAlignment="Center" Canvas.Top="10" Fill="Gray" Height="30" Stretch="Fill" Width="30" Canvas.Left="0" Margin="6 0 0 0"/> </Border> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="BorderBrush" TargetName="bd" Value="white"/> <Setter Property="Fill" TargetName="p1" Value="white"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="btnOpen" TargetType="{x:Type Button}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Border x:Name="bd" Height="60" Width="160" Background="Transparent" CornerRadius="3" BorderBrush="Gray" BorderThickness="2"> <StackPanel Orientation="Horizontal" Margin="30 0 0 0"> <Path x:Name="p1" Data="M1073.714 544q0 17.714-17.714 37.714l-192 226.286q-24.571 29.143-68.857 49.429t-82 20.286h-621.714q-19.429 0-34.571-7.429t-15.143-24.571q0-17.714 17.714-37.714l192-226.286q24.571-29.143 68.857-49.429t82-20.286h621.714q19.429 0 34.571 7.429t15.143 24.571zM877.714 347.429v91.429h-475.429q-53.714 0-112.571 27.143t-93.714 68.286l-195.429 229.714q0-2.286-0.286-7.143t-0.286-7.143v-548.571q0-52.571 37.714-90.286t90.286-37.714h182.857q52.571 0 90.286 37.714t37.714 90.286v18.286h310.857q52.571 0 90.286 37.714t37.714 90.286z" HorizontalAlignment="Center" VerticalAlignment="Center" Canvas.Top="10" Fill="Gray" Height="30" Stretch="Fill" Width="30" Canvas.Left="0" Margin="0 0 5 0"/> <TextBlock Text="打开文件..." Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center"/> </StackPanel> </Border> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="BorderBrush" TargetName="bd" Value="white"/> <Setter Property="Fill" TargetName="p1" Value="white"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Grid> <Grid Margin="2"> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="90"/> </Grid.RowDefinitions> <MediaElement x:Name="MePack" Grid.RowSpan="2" MediaOpened="MePack_MediaOpened" LoadedBehavior="Manual"/> <Border x:Name="bdMain" Grid.RowSpan="2" Background="#161D27"> <Button Style="{StaticResource btnOpen}" Click="openBtn_Click"/> </Border> <Grid Grid.Row="2" Height="80" Background="Black" Opacity=".8"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="80"/> <ColumnDefinition Width="80"/> <ColumnDefinition Width="80"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="20"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <Slider x:Name="CvSlider" Grid.ColumnSpan="5" Style="{StaticResource SliderEnter}" PreviewMouseLeftButtonDown="CvSlider_PreviewMouseLeftButtonDown" PreviewMouseLeftButtonUp="CvSlider_PreviewMouseLeftButtonUp" ValueChanged="CvSlider_ValueChanged" Maximum="0" IsMoveToPointEnabled="True"/> <Button x:Name="btnBack" Grid.Row="1" Grid.Column="1" Style="{StaticResource btnFallback}" Margin="10 5" HorizontalAlignment="Center" VerticalAlignment="Center"/> <Button x:Name="btnPlay" Grid.Row="1" Grid.Column="2" Style="{StaticResource btnPlay}" Margin="10 0" HorizontalAlignment="Center" VerticalAlignment="Center" Click="btnSwitch" Tag="0" ToolTip="播放"/> <Button x:Name="btnStop" Grid.Row="1" Grid.Column="2" Visibility="Hidden" Style="{StaticResource btnStop}" Margin="10 0" HorizontalAlignment="Center" VerticalAlignment="Center" Click="btnSwitch" Tag="1" ToolTip="暂停"/> <Button x:Name="btnFast" Grid.Row="1" Grid.Column="3" Style="{StaticResource btnFast}" Margin="10 5" HorizontalAlignment="Center" VerticalAlignment="Center"/> <TextBlock x:Name="TimeLengh" Text="00:00:00" Margin="10" Grid.Column="4" Grid.Row="1" HorizontalAlignment="Right"/> </Grid> </Grid> </Grid>
public DispatcherTimer tm = new DispatcherTimer(); public TimeSpan ts = new TimeSpan(); ; public MediaElementMain() { InitializeComponent(); tm.Tick += tm_Tick; tm.Interval = TimeSpan.FromSeconds(0.05); tm.Start(); } void tm_Tick(object sender, EventArgs e) { ) { this.CvSlider.Value = MePack.Position.TotalSeconds; ;//时 ; ;//分 ;//秒 ;//时 ; ;//分 ;//秒 TimeLengh.Text = d.ToString() + ":" + f.ToString() + ":" + w.ToString() + "/" + o.ToString() + ":" + k.ToString() + ":" + l.ToString(); } } private void openBtn_Click(object sender, RoutedEventArgs e) { OpenFileDialog openFile = new OpenFileDialog(); openFile.Filter = "ir files (*.wmv)||*.avi||*.mp3||*.mp4||All files (*.*)|*.*"; //过滤文件类型 if (openFile.ShowDialog() == true) { MePack.Source = new Uri(openFile.FileName,UriKind.Relative); MePack.Play(); bdMain.Visibility = Visibility.Hidden; btnStop.Visibility = Visibility.Visible; btnPlay.Visibility = Visibility.Hidden; //getTime(openFile.FileName); } } //public static string getTime(string path) //{ // try // { // Shell32.Shell shell = new Shell32.ShellClass(); // //文件路径 // Shell32.Folder folder = shell.NameSpace(path.Substring(0, path.LastIndexOf("\\"))); // //文件名称 // Shell32.FolderItem folderitem = folder.ParseName(path.Substring(path.LastIndexOf("\\") + 2)); // return folder.GetDetailsOf(folderitem, 21); // } // catch (Exception ex) // { // return null; // } //} private void MePack_MediaOpened(object sender, RoutedEventArgs e) { btnSwitch(btnPlay, null); CvSlider.Minimum = ; CvSlider.Maximum = MePack.NaturalDuration.TimeSpan.TotalSeconds; TimeSpan totaotp = MePack.NaturalDuration.TimeSpan; } private void btnSwitch(object sender, RoutedEventArgs e) { if (MePack.Source != null) { Button btn = sender as Button; int num = Convert.ToInt32(btn.Tag); ) { MePack.Pause(); btnStop.Visibility = Visibility.Hidden; btnPlay.Visibility = Visibility.Visible; } else { MePack.Play(); btnStop.Visibility = Visibility.Visible; btnPlay.Visibility = Visibility.Hidden; } } } private void CvSlider_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { begin = ; } private void CvSlider_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e) { MePack.Position = ts; ;//时 ; ;//分 ;//秒 ;//时 ; ;//分 ;//秒 TimeLengh.Text = d.ToString() + ":" + f.ToString() + ":" + w.ToString() + "/" + o.ToString() + ":" + k.ToString() + ":" + l.ToString(); begin = (int)ts.TotalSeconds; } private void CvSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) { ts = TimeSpan.FromSeconds(e.NewValue); ;//时 ; ;//分 ;//秒 ;//时 ; ;//分 ;//秒 TimeLengh.Text = d.ToString() + ":" + f.ToString() + ":" + w.ToString() + "/" + o.ToString() + ":" + k.ToString() + ":" + l.ToString(); }
效果图: