3

我正在通过构建 WMP 类型的应用程序来学习 C# 和 WPF。下面的代码运行良好,从列表框中选择电影在媒体元素中运行。我遇到的问题是找到一种方法可以在电影结束后自动开始下一部电影。谢谢你。

提供电影列表的 xml 文件:

<?xml version="1.0" encoding="ISO-8859-1"?>

熊 c:\movies\Bear.wmv 蝴蝶 c:\movies\Butterfly.wmv 湖 c:\movies\Lake.wmv

xml

<Window x:Class="WpfAppPlaylistTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="425">

<Window.Resources>
    <XmlDataProvider x:Key="myMoviesXML"

                         Source="c:\Movies\media1.xml"
                         XPath="media"
        />
</Window.Resources>

<Grid DataContext="{Binding ElementName=movieList, Path=SelectedItem}">
    <ListBox ItemsSource="{Binding Source={StaticResource myMoviesXML}, XPath=//media//movie}" IsSynchronizedWithCurrentItem="True" 
     Name="movieList" HorizontalAlignment="Right" Width="114" Margin="0,48,12,32">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding XPath=title}"/>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
    <MediaElement Source="{Binding XPath=filename}" LoadedBehavior="Play" Name="mediaElement1" Margin="12,26,136,12"  />
</Grid>

4

1 回答 1

1

MediaElement 有一个 MediaEnded 事件,发生这种情况时应触发该事件。然后您可以通过编程方式选择列表中的下一个项目,然后播放该文件。

于 2010-02-08T20:04:13.483 回答