1

我正在编写一个 WPF 桌面应用程序,具有一些视频播放功能。我决定使用 LibVLCSharp.WPF 来完成播放任务。

Xml代码:

<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 播放器上放置一个自动显示面板,它只在鼠标“悬停”在播放区域上时显示?

4

1 回答 1

3

通过@cube45 的提示解决了问题。谢谢你。

我改成BackgroundCanvas“不那么透明”的东西。

Xml代码:

<Canvas Background="#01000000" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MouseEnter="Canvas_MouseEnter">
</Canvas>

鼠标事件起作用了。棘手,但很有用。

于 2019-12-09T02:37:53.347 回答