当用户将鼠标指针放在元素上时,有没有办法使用WPF让视频元素开始播放?我想制作一个交互式数字资源,并希望当鼠标悬停在元素上时,可以播放电影剪辑,以便将它们带到电影部分。任何帮助都会很棒。
这将全部包含在Windows应用程序中。
答案 0 :(得分:1)
如果您使用MediaElement播放视频,只需听取MouseEntered事件并致电Play()。
注意:必须将MediaElement的LoadedBehavior属性设置为Manual,才能以交互方式停止,暂停和播放媒体。
以下是一个例子:
在C#代码隐藏中:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void mediaElement1_MouseEnter(object sender, MouseEventArgs e)
{
mediaElement1.Play();
}
private void mediaElement1_MouseLeave(object sender, MouseEventArgs e)
{
mediaElement1.Stop();
}
private void mediaElement1_Loaded(object sender, RoutedEventArgs e)
{
mediaElement1.Pause();
}
}
在XAML中:
<Window x:Class="VideoTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<MediaElement Margin="12"
Name="mediaElement1"
Source="mediaFile.avi"
LoadedBehavior="Manual"
MouseEnter="mediaElement1_MouseEnter"
MouseLeave="mediaElement1_MouseLeave"
Loaded="mediaElement1_Loaded"
/>
</Grid>
</Window>
答案 1 :(得分:0)
发现
的问题<MediaElement Margin="12"
Name="mediaElement1"
Source="mediaFile.avi"
LoadedBehavior="Manual"
MouseEnter="mediaElement1_MouseEnter"
MouseLeave="mediaElement1_MouseLeave"
Loaded="mediaElement1_Loaded"
/>
它似乎不喜欢
Loaded="mediaElement1_Loaded"
所以我在后面的代码中更改了我的Initialize以包含
mediaElement1.Pause();
它工作得很好。