前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何通过WPF编译H265视频流媒体播放器EasyPlayerPro上改变控件的位置?

如何通过WPF编译H265视频流媒体播放器EasyPlayerPro上改变控件的位置?

原创
作者头像
TSINGSEE青犀视频
修改2021-03-19 14:12:33
1.4K0
修改2021-03-19 14:12:33
举报
文章被收录于专栏:TSINGSEE青犀视频

WPF用户界面框架提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面,是我们在编译中也会用到的一种框架。对于EasyPlayerPro的播放我们也尝试了通过WPF执行,下面分享下我们WPF播放EasyPlayerPro控件改变位置的方式。

创建一个WPF程序,在使用EasyPlayPro中dll文件,传入一个窗口句柄,这样运行起来的画面如下图显示;但是有个问题:就是在WPF加入任何的控件都会隐藏在画面下面。完全设置不了顺序,导致画面窗口永远的置顶。

WPF的原生控件并不具备自身的句柄,即使使用偏门的方式获取控件所在的窗口句柄,也并不代表该控件本身的资源属性,这个主要是由WPF自身的机制所决定得。因此需要了解winform与WPF的区别,WPF和winform最大的区别在于WPF使用的是DirectX,而windform使用的是GDI+。

当我们直接使用WPF的控件句柄为OSG等第三方控件的绘制视图区域时,我们就会发现视图区域占用整个窗体,无法在上面添加任何控件(不是控件没添加上)。这个与上面提到的WPF的原生控件并不具备自身句柄相一致。

为了解决此问题,我们需要使用WPF第三方:

1、使用Microsoft.DwayneNeed第三方

2、用VS打开Microsoft.DwayneNeed.sln解决方案,完成编译

3、在WPF项目中添加Microsoft.DwayneNeed.dll引用

4、在xmal中添加代码

Window节点添加:

代码语言:javascript
复制
xmlns:airspace="clr-namespace:Microsoft.DwayneNeed.Interop;assembly=Microsoft.DwayneNeed"

在xmal添加AirspaceDecorator:

代码语言:javascript
复制

<airspace:AirspaceDecorator AirspaceMode="Redirect" Name="AirspaceDecorator" IsInputRedirectionEnabled="True" IsOutputRedirectionEnabled="True" Margin="37,0,36,182">
            <Image x:Name="image2" Stretch="Fill" Margin="40,214,0,0" />
        </airspace:AirspaceDecorator>

5、最后运行效果如下图(在图像上可以加任何控件):

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档