zoukankan      html  css  js  c++  java
  • WPF 控件开发之MediaElement

    MediaElement的暂停,播放功能。

    <UserControl x:Class="Control_Test.MediaElement"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <UserControl.Resources>
            <ImageBrush  x:Key="StartImgBrush" ImageSource="Chapter02/player_start.png"/>
            <ImageBrush  x:Key="PauseImgBrush" ImageSource="Chapter02/player_pause.png"/>
            <ImageBrush x:Key="PlayImgBrush" ImageSource="Chapter02/player_play.png"/>
            <ImageBrush x:Key="StopImgBrush" ImageSource="Chapter02/player_stop.png"/>     
            <!--Button控件模板-->
            <ControlTemplate x:Key="ButtonTemplate" TargetType="Button">
                <Grid>
                    <Rectangle x:Name="Rect" Fill="{TemplateBinding Background}"/>
                </Grid>
            </ControlTemplate>    
            <ControlTemplate x:Key="PlayButtonTemplate" TargetType="ToggleButton">
                <Grid>
                    <Rectangle x:Name="Rect" Fill="{StaticResource PlayImgBrush}"/>
                </Grid>
                <ControlTemplate.Triggers>
                    <Trigger Property="ToggleButton.IsChecked" Value="True">
                        <Setter Property="Fill" Value="{StaticResource PauseImgBrush}" TargetName="Rect">                  
                        </Setter>
                    </Trigger>
                    <Trigger Property="ToggleButton.IsChecked" Value="False">
                        <Setter Property="Fill" Value="{StaticResource PlayImgBrush}" TargetName="Rect">
                        </Setter>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </UserControl.Resources>
        <UserControl.CommandBindings>
            <CommandBinding Command="MediaCommands.TogglePlayPause" CanExecute="CommandBinding_CanExecute" Executed="PlayPause"/>
            <CommandBinding Command="MediaCommands.Stop" CanExecute="CommandBinding_CanExecute" Executed="Stop"/>
            <CommandBinding Command="MediaCommands.Rewind" CanExecute="CommandBinding_CanExecute" Executed="Stop"/>
        </UserControl.CommandBindings>
        <DockPanel>    
            <Grid DockPanel.Dock="Bottom">
                <Border Width="180" Height="24" 
                        Background="LightGray"
                        BorderBrush="DarkGray" 
                        BorderThickness="1" 
                        CornerRadius="12"
                        SnapsToDevicePixels="False"></Border>
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
                    <Button  Width="32" Height="32" 
                             Command="MediaCommands.Rewind"
                             Template="{StaticResource ButtonTemplate}"
                             Background="{StaticResource StartImgBrush}">Rewind</Button>
                    <ToggleButton x:Name="_playBtn" Width="48" Height="48" Margin="10,0,10,0"
                                  Command="MediaCommands.TogglePlayPause"
                                  Template="{StaticResource PlayButtonTemplate}"/>
                    <Button  Width="32" Height="32" 
                             Command="MediaCommands.Stop"
                             Template="{StaticResource ButtonTemplate}"
                             Background="{StaticResource StopImgBrush}">Stop</Button>
                </StackPanel>
            </Grid>
            <MediaElement x:Name="myMedia" LoadedBehavior="Manual" UnloadedBehavior="Pause" Source="E:/Bear.wmv"/>
        </DockPanel>
    </UserControl>
    

    C#Code

            private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e)
            {
                e.CanExecute = true;
            }
    
            private void PlayPause(object sender, ExecutedRoutedEventArgs e)
            {
                if(_isPlaying)
                {
                    myMedia.Pause();
                    _isPlaying = false;
                }
                else
                {
                    myMedia.Play();
                    _isPlaying = true;
                }
            }
    
            private void Stop(object sender, ExecutedRoutedEventArgs e)
            {
                myMedia.Stop();
                _playBtn.IsChecked = false;
                _isPlaying = false;
    
            }
    

      

     

      

  • 相关阅读:
    数据库表设计
    solr的schame.xml
    搭建solr服务器
    lucene&solr索引维护之查询
    lucene&solr索引维护之删除和修改
    lucene&solr查询索引实例
    lucene&solr入门实例
    java集合排序整理
    HahMap(jdk=1.8)源码解读
    APIO2020 游记
  • 原文地址:https://www.cnblogs.com/linlf03/p/2182334.html
Copyright © 2011-2022 走看看