wpf C#Media元素在Itemtemplate中循环播放

o4hqfura  于 2022-11-18  发布在  C#
关注(0)|答案(1)|浏览(115)

我有一个UserControl,上面有一个ItemsControl。此ItemsControl在资源文件中有一个Itemtemplate。

<ItemsControl x:Name="itemcontrol" Grid.ColumnSpan="3" Grid.RowSpan="2"
    ItemsSource="{Binding PageItems}" 
    ItemTemplate="{StaticResource MosaicGridStyleMP4}" />

此模板中有一个Media元素。
Mainskin.xaml:

<DataTemplate x:Key="MosaicGridStyleMP4">
<Border BorderBrush="Gray" BorderThickness="1" CornerRadius="10" Margin="2,2,2,2">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="60"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <TextBlock Text="{Binding PK_SpotABS}" Width="Auto" />
        <MediaElement x:Name="mePlayer" Source="{Binding Media.Source, Mode=OneWay}" Volume="0" Grid.row="1" />
    </Grid>
</Border>
</DataTemplate>

在Mediaelement中播放的视频工作正常,只是它只播放一次。我如何使它无限循环播放视频?即使在控制按钮(播放,停止等)的帮助下。
(情节提要方法不起作用。https://learn.microsoft.com/en-us/dotnet/desktop/wpf/graphics-multimedia/how-to-repeat-media-playback?view=netframeworkdesktop-4.8

rxztt3cl

rxztt3cl1#

您可以行程MediaEnded事件:

private void OnMediaEnded(object sender, RoutedEventArgs e)
{
    MediaElement mediaElement = (MediaElement)sender;
    mediaElement.Position = TimeSpan.Zero;
    mediaElement.Play();
}

XAML文件:

<MediaElement x:Name="mePlayer" Source="{Binding Media.Source, Mode=OneWay}" Volume="0" Grid.Row="1"
              UnloadedBehavior="Manual" MediaEnded="OnMediaEnded"/>

相关问题