关于 Panel.ZIndex 属性失效的疑惑
描述
当我在使用LibVLCSharp.WPF 的时候遇到了 Panel.ZIndex 属性失效的问题。我在 window 中编写了两个并列的 VideoView , 并分别设置了 Panel.ZIndex 为19 和20 ,但是当窗体显示出来的时候, Panel.ZIndex 为20 的VideoView 被遮住了。
CODE
<Window x:Class="WpfApp1.Test.VideoView5"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1.Test"
xmlns:vlc="clr-namespace:LibVLCSharp.WPF;assembly=LibVLCSharp.WPF"
ResizeMode="NoResize" WindowStyle="None" AllowsTransparency="True"
mc:Ignorable="d"
Title="VideoView5" Height="1080" Width="1920">
<Grid>
<vlc:VideoView Background="LightBlue" x:Name="video_main" Panel.ZIndex="19" Width="1900" Height="1060">
<WrapPanel Margin="50">
</WrapPanel>
</vlc:VideoView>
<vlc:VideoView x:Name="video_small" Background="Black" Panel.ZIndex="20" Width="555" Height="300"></vlc:VideoView>
</Grid>
</Window>
`
public partial class VideoView5 : Window
{
readonly LibVLC _libvlc;
public VideoView5()
{
InitializeComponent();
_libvlc = new LibVLC();
string url = "http://1257120875.vod2.myqcloud.com/0ef121cdvodtransgzp1257120875/3055695e5285890780828799271/v.f230.m3u8";
string url2 = "http://39.134.115.163:8080/PLTV/88888910/224/3221225631/index.m3u8";
//VideoMain
video_main.MediaPlayer = new LibVLCSharp.Shared.MediaPlayer(_libvlc);
using (var media = new Media(_libvlc, new Uri(url)))
{
video_main.MediaPlayer.Play(media);
}
//videoSmall
video_small.MediaPlayer = new LibVLCSharp.Shared.MediaPlayer(_libvlc);
using (var media = new Media(_libvlc, new Uri(url2)))
{
video_small.MediaPlayer.Play(media);
}
}
}
`
期望实现的效果
可以使用 Panel.ZIndex 或者其他的属性实现窗体叠加的功能。 我的最终诉求是在一个 window 中展示两个rtsp 的流画面,一个作为背景占据全屏,另一个小屏放在左下角展示,并可以通过一个按钮来回切换。