CN106843944B - WPF中播放Flash的宿主容器及方法 - Google Patents
WPF中播放Flash的宿主容器及方法 Download PDFInfo
- Publication number
- CN106843944B CN106843944B CN201710004552.3A CN201710004552A CN106843944B CN 106843944 B CN106843944 B CN 106843944B CN 201710004552 A CN201710004552 A CN 201710004552A CN 106843944 B CN106843944 B CN 106843944B
- Authority
- CN
- China
- Prior art keywords
- window
- flash
- host container
- wpf
- win32
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Controls And Circuits For Display Device (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种WPF中播放Flash的宿主容器及方法,涉及Flash播放领域。该宿主容器位于WPF窗体中,WPF窗体通过宿主容器承载Flash动画,宿主容器构建基于图形设备接口GDI+的Win32窗体,给Win32窗体设置10%~15%的透明度,视觉上不会遮盖其他控件;Win32窗体加载ActiveX控件播放Flash;宿主容器定期从Win32窗体按帧截图,在宿主容器中渲染截取的图片,形成动画播放效果。本发明播放Flash时不会遮盖其他控件。
Description
技术领域
本发明涉及Flash播放领域,具体是涉及一种WPF中播放Flash的宿主容器及方法。
背景技术
WPF(Windows Presentation Foundation,Windows呈现基础)是微软新一代图形***,运行在.NET Framework 3.0架构下,为用户界面、2D/3D图形、文档和媒体提供了统一的描述和操作方法。基于DirectX技术的WPF不仅带来了前所未有的3D界面,而且其图形向量渲染引擎也大大改进了传统的2D界面。DirectX:Direct eXtension,简称DX,是由微软公司创建的多媒体编程接口。
Flash动画的播放广泛采用的是官方提供的基于GDI+(Graphics DeviceInterface,图形设备接口)的播放器。当在基于DirectX的WPF承载基于GDI+的Flash时,基于DirectX渲染的图形界面元素与基于GDI+渲染的图形界面元素在同一个窗体中层叠呈现。同一个视觉区域采用两种渲染技术,会产生空域(airspace)问题,即Flash在WPF中播放导致的布局限制:Flash播放器窗体(即Win32窗体)遮盖住WPF窗体。WPF中对Flash播放的支持并不友好,只提供了基于GDI+的Win32组件,通过WPF的控件宿主容器(Windows FormsHost)承载实现,播放时窗体始终会呈现在WPF窗体的上方,置顶显示,对其他控件产生遮盖。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种WPF中播放Flash的宿主容器及方法,播放Flash时不会遮盖其他控件。
本发明提供一种WPF中播放Flash的宿主容器,该宿主容器位于WPF窗体中,WPF窗体通过宿主容器承载Flash动画,宿主容器构建基于图形设备接口GDI+的Win32窗体,给Win32窗体设置10%~15%的透明度,视觉上不会遮盖其他控件;Win32窗体加载ActiveX控件播放Flash;宿主容器定期从Win32窗体按帧截图,在宿主容器中渲染截取的图片,形成动画播放效果。
在上述技术方案的基础上,所述宿主容器还通过显示和隐藏Win32窗体来实现交互:Flash播放时,当鼠标不在Flash播放区域内时,宿主容器给Win32窗体设置0%的透明度,Win32窗体完全透明,支持WPF层叠布局;当鼠标移入Flash播放区域内时,宿主容器给Win32窗体设置10%~15%的透明度,Win32窗体支持捕获交互操作的输入事件,实现用户与Win32窗体中播放的Flash的交互,并通过截图将交互效果呈现在WPF控件上。
在上述技术方案的基础上,所述交互操作包括键盘操作、鼠标操作、手写笔操作、手势操作。
在上述技术方案的基础上,所述宿主容器在Win32窗体和全屏窗体之间切换显示ActiveX控件,实现Flash播放无中断全屏切换。
在上述技术方案的基础上,所述全屏窗体为宿主容器的父窗体、承载体或者全新的WPF窗体。
本发明还提供一种基于上述宿主容器的WPF中播放Flash的方法,包括以下步骤:
在WPF界面的可扩展应用程序标记语言XAML代码中添加宿主容器;该宿主容器位于WPF窗体中,WPF窗体通过宿主容器承载Flash动画,宿主容器构建基于图形设备接口GDI+的Win32窗体,给Win32窗体设置10%~15%的透明度,视觉上不会遮盖其他控件;Win32窗体加载ActiveX控件播放Flash;宿主容器定期从Win32窗体按帧截图,在宿主容器中渲染截取的图片,形成动画播放效果。
在上述技术方案的基础上,该方法还包括以下步骤:所述宿主容器通过显示和隐藏Win32窗体来实现交互:Flash播放时,当鼠标不在Flash播放区域内时,宿主容器给Win32窗体设置0%的透明度,Win32窗体完全透明,支持WPF层叠布局;当鼠标移入Flash播放区域内时,宿主容器给Win32窗体设置10%~15%的透明度,Win32窗体支持捕获交互操作的输入事件,实现用户与Win32窗体中播放的Flash的交互,并通过截图将交互效果呈现在WPF控件上。
在上述技术方案的基础上,所述交互操作包括键盘操作、鼠标操作、手写笔操作、手势操作。
在上述技术方案的基础上,该方法还包括以下步骤:所述宿主容器在Win32窗体和全屏窗体之间切换显示ActiveX控件,实现Flash播放无中断全屏切换。
在上述技术方案的基础上,所述全屏窗体为宿主容器的父窗体、承载体或者全新的WPF窗体。
与现有技术相比,本发明的优点如下:
(1)本发明中的宿主容器位于WPF窗体中,WPF窗体通过宿主容器承载Flash动画,宿主容器构建基于GDI+(Graphics Device Interface,图形设备接口)的Win32窗体,给Win32窗体设置10%~15%的透明度,视觉上不会遮盖其他控件;Win32窗体加载ActiveX控件播放Flash;宿主容器定期从Win32窗体按帧截图,在宿主容器中渲染截取的图片,形成动画播放效果。由于宿主容器给Win32窗体设置10%~15%的透明度,视觉上不会遮盖其他控件,也不会阻挡键盘操作、鼠标操作、手写笔操作、手势操作等交互操作的输入事件。因此,Flash播放时不会遮盖其他控件,对用到Flash播放的模块,控件布局不再受局限,通过扩展,可以应用到WPF支持不完善而Win32有较好处理方案的情况下,例如网页浏览器、视频播放器等。
(2)本发明中的宿主容器通过显示和隐藏Win32窗体来实现交互:Flash播放时,当鼠标不在Flash播放区域内时,宿主容器给Win32窗体设置0%的透明度,Win32窗体完全透明,支持WPF层叠布局;当鼠标移入Flash播放区域内时,宿主容器给Win32窗体设置10%~15%的透明度,Win32窗体支持捕获交互操作的输入事件,实现用户与Win32窗体中播放的Flash的交互,并通过截图将交互效果呈现在WPF控件上。
(3)本发明中的宿主容器在Win32窗体和全屏窗体之间切换显示ActiveX控件,能够实现Flash播放无中断全屏切换。
(4)本发明在Win32窗体中显示的是Flash播放时的截图,是图片操作,因此不会对WPF的图形元素产生遮盖,不影响布局,承载Flash的控件不再与主窗体的样式发生冲突。
附图说明
图1是本发明实施例中宿主容器运行的流程图。
图2是本发明实施例中Flash交互的流程图。
图3是本发明实施例中实现Flash播放无中断全屏切换的流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
本发明实施例提供一种WPF中播放Flash的宿主容器,该宿主容器位于WPF窗体中,参见图1所示,WPF窗体通过宿主容器承载Flash动画,宿主容器构建基于图形设备接口GDI+(Graphics Device Interface,图形设备接口)的Win32窗体,给Win32窗体设置10%~15%的透明度,视觉上不会遮盖其他控件;Win32窗体加载ActiveX控件播放Flash;宿主容器定期从Win32窗体按帧截图,在宿主容器中渲染截取的图片,形成动画播放效果。由于宿主容器给Win32窗体设置10%~15%的透明度,视觉上不会遮盖其他控件,也不会阻挡交互操作的输入事件,交互操作包括键盘操作、鼠标操作、手写笔操作、手势操作。
本发明实施例还提供一种基于上述宿主容器的WPF中播放Flash的方法,包括以下步骤:
在WPF界面的XAML(eXtensible Application Markup Language,可扩展应用程序标记语言)代码中添加宿主容器;该宿主容器位于WPF窗体中,参见图1所示,WPF窗体通过宿主容器承载Flash动画,宿主容器构建基于图形设备接口GDI+的Win32窗体,给Win32窗体设置10%~15%的透明度,视觉上不会遮盖其他控件;Win32窗体加载ActiveX控件播放Flash;宿主容器定期从Win32窗体按帧截图,在宿主容器中渲染截取的图片,形成动画播放效果。
参见图2所示,宿主容器还通过显示和隐藏Win32窗体来实现交互:Flash播放时,当鼠标不在Flash播放区域内时,宿主容器给Win32窗体设置0%的透明度,Win32窗体完全透明,支持WPF层叠布局;当鼠标移入Flash播放区域内时,宿主容器给Win32窗体设置10%~15%的透明度,Win32窗体支持捕获交互操作的输入事件,实现用户与Win32窗体中播放的Flash的交互,并通过截图将交互效果呈现在WPF控件上。
宿主容器还通过在Win32窗体和全屏窗体之间切换显示ActiveX控件,来实现Flash播放无中断全屏切换。以前不能交互的原因是:以前在WPF窗体中显示的是图片。本发明实施例是在Win32窗体和全屏窗体之间切换显示ActiveX控件。
参见图3所示,需要全屏显示时,宿主容器打开全屏窗体,将播放Flash的ActiveX控件从隐藏窗体中剥离,在全屏窗体中添加播放Flash的ActiveX控件进行播放,以不中断播放的方式实现全屏切换。全屏窗体为宿主容器的父窗体、承载体或者全新的WPF窗体。
本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。
说明书中未详细描述的内容为本领域技术人员公知的现有技术。
Claims (6)
1.一种WPF中播放Flash的宿主容器,其特征在于:该宿主容器位于WPF窗体中,且所述宿主容器添加于WPF界面的可扩展应用程序标记语言XAML代码中,WPF窗体通过宿主容器承载Flash动画,宿主容器构建基于图形设备接口GDI+的Win32窗体,给Win32窗体设置10%~15%的透明度,视觉上不会遮盖其他控件;Win32窗体加载ActiveX控件播放Flash;宿主容器定期从Win32窗体按帧截图,在宿主容器中渲染截取的图片,形成动画播放效果;
所述宿主容器在Win32窗体和全屏窗体之间切换显示ActiveX控件,实现Flash播放无中断全屏切换;
所述全屏窗体为宿主容器的父窗体、承载体或者全新的WPF窗体。
2.如权利要求1所述的WPF中播放Flash的宿主容器,其特征在于:所述宿主容器还通过显示和隐藏Win32窗体来实现交互:Flash播放时,当鼠标不在Flash播放区域内时,宿主容器给Win32窗体设置0%的透明度,Win32窗体完全透明,支持WPF层叠布局;当鼠标移入Flash播放区域内时,宿主容器给Win32窗体设置10%~15%的透明度,Win32窗体支持捕获交互操作的输入事件,实现用户与Win32窗体中播放的Flash的交互,并通过截图将交互效果呈现在WPF控件上。
3.如权利要求2所述的WPF中播放Flash的宿主容器,其特征在于:所述交互操作包括键盘操作、鼠标操作、手写笔操作、手势操作。
4.一种基于权利要求1所述宿主容器的WPF中播放Flash的方法,其特征在于,包括以下步骤:
在WPF界面的可扩展应用程序标记语言XAML代码中添加宿主容器;该宿主容器位于WPF窗体中,WPF窗体通过宿主容器承载Flash动画,宿主容器构建基于图形设备接口GDI+的Win32窗体,给Win32窗体设置10%~15%的透明度,视觉上不会遮盖其他控件;Win32窗体加载ActiveX控件播放Flash;宿主容器定期从Win32窗体按帧截图,在宿主容器中渲染截取的图片,形成动画播放效果;
所述宿主容器在Win32窗体和全屏窗体之间切换显示ActiveX控件,实现Flash播放无中断全屏切换;
所述全屏窗体为宿主容器的父窗体、承载体或者全新的WPF窗体。
5.如权利要求4所述的WPF中播放Flash的方法,其特征在于:该方法还包括以下步骤:所述宿主容器通过显示和隐藏Win32窗体来实现交互:Flash播放时,当鼠标不在Flash播放区域内时,宿主容器给Win32窗体设置0%的透明度,Win32窗体完全透明,支持WPF层叠布局;当鼠标移入Flash播放区域内时,宿主容器给Win32窗体设置10%~15%的透明度,Win32窗体支持捕获交互操作的输入事件,实现用户与Win32窗体中播放的Flash的交互,并通过截图将交互效果呈现在WPF控件上。
6.如权利要求5所述的WPF中播放Flash的方法,其特征在于:所述交互操作包括键盘操作、鼠标操作、手写笔操作、手势操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710004552.3A CN106843944B (zh) | 2017-01-04 | 2017-01-04 | WPF中播放Flash的宿主容器及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710004552.3A CN106843944B (zh) | 2017-01-04 | 2017-01-04 | WPF中播放Flash的宿主容器及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106843944A CN106843944A (zh) | 2017-06-13 |
CN106843944B true CN106843944B (zh) | 2020-08-25 |
Family
ID=59118489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710004552.3A Active CN106843944B (zh) | 2017-01-04 | 2017-01-04 | WPF中播放Flash的宿主容器及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106843944B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833447A (zh) * | 2010-04-08 | 2010-09-15 | 广东欧珀移动通信有限公司 | 一种利用补间动画实现桌面Widget动画的方法 |
CN102750145A (zh) * | 2012-06-05 | 2012-10-24 | 怯肇乾 | 一种网络***软件体系框架及其实现方法 |
CN104484143A (zh) * | 2014-12-04 | 2015-04-01 | 国家电网公司 | 一种用于显示屏矩阵的单数据多模式展示*** |
-
2017
- 2017-01-04 CN CN201710004552.3A patent/CN106843944B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833447A (zh) * | 2010-04-08 | 2010-09-15 | 广东欧珀移动通信有限公司 | 一种利用补间动画实现桌面Widget动画的方法 |
CN102750145A (zh) * | 2012-06-05 | 2012-10-24 | 怯肇乾 | 一种网络***软件体系框架及其实现方法 |
CN104484143A (zh) * | 2014-12-04 | 2015-04-01 | 国家电网公司 | 一种用于显示屏矩阵的单数据多模式展示*** |
Non-Patent Citations (1)
Title |
---|
"基于WPF和FLASH的仿真训练***可视化设计与实现";邢方元;《中国优秀硕士学位论文全文数据库 信息科技辑》;20141215(第12期);第2.1.2节,第4.6.2节,第5.1节 * |
Also Published As
Publication number | Publication date |
---|---|
CN106843944A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9672539B2 (en) | Advertisement generation apparatus and terminal device | |
US10453240B2 (en) | Method for displaying and animating sectioned content that retains fidelity across desktop and mobile devices | |
US8861890B2 (en) | System and method for assembling and displaying individual images as a continuous image | |
CN110597444B (zh) | 一种书写笔迹显示方法、装置、终端设备及存储介质 | |
US8205169B1 (en) | Multiple editor user interface | |
CN102739983B (zh) | 一种实现半透明效果的方法及*** | |
US20150269128A1 (en) | Portlet display on portable computing devices | |
US8872813B2 (en) | Parallax image authoring and viewing in digital media | |
CN112799627B (zh) | 显示设备及图像显示方法 | |
US20190012987A1 (en) | Method and system for playing multimedia data | |
WO2017113551A1 (en) | System and method for operating system of mobile device | |
CN112541960A (zh) | 三维场景的渲染方法、装置及电子设备 | |
CN103049430A (zh) | 一种基于idf格式文件的页面显示方法 | |
CN106843944B (zh) | WPF中播放Flash的宿主容器及方法 | |
TWI527445B (zh) | 於x視窗系統上顯示硬體加速之視頻的技術 | |
JP2017151491A (ja) | 画像表示装置、画像処理システム、画像処理方法及び画像処理プログラム | |
CN110971955B (zh) | 页面处理方法及装置、电子设备以及存储介质 | |
CN102917272A (zh) | 一种应用程序交叉嵌套显示的方法 | |
CN102591646B (zh) | 一种同时缩放多个wpf窗体的方法和装置 | |
CN201859394U (zh) | 投影空间动态视频手势操控*** | |
EP2761396A1 (en) | Displaying hardware accelerated video on x window systems | |
US20110175908A1 (en) | Image Effect Display Method and Electronic Apparatus Thereof | |
CN112417346A (zh) | 渲染方法、装置、电子设备及存储介质 | |
US9685140B1 (en) | Optimized rendering of multimedia content | |
CN102073433A (zh) | 画面绘图方法及应用该方法的电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |