5

我正在尝试在包含嵌入 VLC 的 activeX 控件的 WindowsFormsHost 上覆盖按钮。我遇到的问题是activeX总是在wpf之上。有什么方法可以让 wpf 控制 activeX 控件?

VLC 控件似乎也不支持渲染到位图。

4

3 回答 3

4

我终于找到了解决方案。popup 原语也是一个始终位于顶部的元素,可以放置在 vlc 控件上。它有点破解,但它得到了我需要的覆盖。我的播放器 xaml 看起来像这样

<grid>
    <WindowsFormsHost x:Name="Host"
                      Height="200"
                      Width="200" />
    <Border x:Name="Anchor"
            Height="0"
            Width="0"
            HorizontalAlignment="Left"
            VerticalAlignment="Top" />
    <Popup Width="{Binding ElementName=Host,Path=Width}"
           Height="{Binding ElementName=Host,Path=Height}"
           PlacementTarget="{Binding ElementName=Anchor}"
           AllowsTransparency="True"
           IsOpen="True">
        <Border Background="#30808080"
                Width="{Binding ElementName=Host,Path=Width}"
                Height="{Binding ElementName=Host,Path=Height}">
            <Button Content="Start"
                    Height="20"
                    Width="60"
                    Click="button1_Click"/>
        </Border>

    </Popup>
</grid>

上面在包含按钮的 vlc 播放器上放置了一个浅灰色透明层。上面没有说明窗口是否被调整大小或移动,但是在控件上放置一些 wpf 的问题已经解决。

于 2013-03-06T15:41:00.410 回答
2

简短的回答:没有。

摘自MSDN

在 WPF 用户界面中,您可以更改元素的 z 顺序以控制重叠行为。托管的 Windows 窗体控件在单独的 HWND 中绘制,因此它始终绘制在 WPF 元素之上。

于 2013-03-06T15:08:57.787 回答
0

对于 VLC,VideoLan.Net 位于:http: //vlcdotnet.codeplex.com/ ,它允许将视频输出到图像。

于 2013-07-16T16:06:13.013 回答