我正在编写一个WPF桌面应用程序,带有一些视频播放功能。我决定使用LibVLCSharp.WPF来完成播放任务。
Xaml代码:
<UserControl ...
xmlns:vlc="clr-namespace:LibVLCSharp.WPF;assembly=LibVLCSharp.WPF"
... >
<vlc:VideoView VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Canvas VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MouseEnter="Canvas_MouseEnter">
</Canvas>
</vlc:VideoView>
</UserControl>
播放视频效果很好,但当我试图在Canvas
(或任何其他类型的Panel
控件)中放置一些隐藏控件并通过MouseEnter
事件改变它们的可见性时,什么都不会发生。
在调试过程中,我发现只有当MouseEnter
事件的子控件至少有一个可见控件,并且鼠标指针进入该可见控件时,Canvas
事件才能触发。
我读过有关“空域问题”的文章。这似乎与我无关,因为我只想在播放区域内画一个控制层。
我是否可以在VLC播放器上放置一个车展面板,它只显示鼠标在播放区域上“悬停”的情况?
发布于 2019-12-09 02:37:53
问题由@cube45 45提示解决。谢谢。
我把Background
of Canvas
改成了“不那么透明”的东西。
Xaml代码:
<Canvas Background="#01000000" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MouseEnter="Canvas_MouseEnter">
</Canvas>
鼠标事件起作用了。很棘手但很有用。
https://stackoverflow.com/questions/59208880
复制相似问题