c# - 如何制作WPF背景动画循环?
问题描述
我在MainWindow.xaml
(使用 Storyboards)中使用了这段代码来制作背景动画循环:
<Window.Background>
<VisualBrush Stretch="UniformToFill" AlignmentX="Left" AlignmentY="Top">
<VisualBrush.Visual>
<MediaElement Name="bgv" Opacity="1" IsMuted="True" Width="3840" Height="2160" Stretch="None" HorizontalAlignment="Left" VerticalAlignment="Top">
<MediaElement.Triggers>
<EventTrigger RoutedEvent="MediaElement.Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<MediaTimeline Source="SuperRes/matrixX-animation1.mp4" Storyboard.TargetName="bgv" RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</MediaElement.Triggers>
</MediaElement>
</VisualBrush.Visual>
</VisualBrush>
</Window.Background>
问题是垃圾收集器有时会阻止它循环或将其从窗口中删除。还有其他方法可以制作此视频循环吗?
解决方案
我花了一段时间才找到一个完美的解决方案。这是代码:
XAML:
<MediaElement x:Name="instructionVideo" Width="320" Height="240" Source="Videos/Instructions.mp4" LoadedBehavior="Manual" Loaded="instructionVideo_Loaded" MediaEnded="instructionVideo_MediaEnded" VerticalAlignment="Bottom" HorizontalAlignment="Center" Canvas.Top="40"/>
CS:
private void instructionVideo_Loaded(object sender, RoutedEventArgs e)
{
instructionVideo.Play();
}
private void instructionVideo_MediaEnded(object sender, RoutedEventArgs e)
{
instructionVideo.Position = TimeSpan.FromSeconds(0);
}
学分:
http://jcraane.blogspot.com/2012/03/continuously-looping-video-in-wpf.html
推荐阅读
- python - 从文本文件创建多个 txt 文件
- scala - 提高算法的效率
- javascript - 为什么 Swiper JS 中的活动幻灯片的数量在分页中没有变化?
- spring-boot - Spring Kafka Consumer 寻求特定的偏移量来读取消息
- ios - 如果不为空,目标 c 将值设置为属性
- python-3.x - Visual Studio 2019 项目全部变成缩进
- python - 量子机器学习-qiskit:使用 VQC 和 Iris 数据集的 Ramdon 精度
- java - HashMap 创建重复键?
- openpyxl - Openpyxl 旋转列标题
- java - 使用 Retrofit2 传递原始查询字符串