CN106843944B - WPF中播放Flash的宿主容器及方法 - Google Patents

WPF中播放Flash的宿主容器及方法 Download PDF

Info

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
Application number
CN201710004552.3A
Other languages
English (en)
Other versions
CN106843944A (zh
Inventor
戴有勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Tianyu Education Technology Co ltd
Original Assignee
Wuhan Tianyu Education Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Tianyu Education Technology Co ltd filed Critical Wuhan Tianyu Education Technology Co ltd
Priority to CN201710004552.3A priority Critical patent/CN106843944B/zh
Publication of CN106843944A publication Critical patent/CN106843944A/zh
Application granted granted Critical
Publication of CN106843944B publication Critical patent/CN106843944B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic 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

WPF中播放Flash的宿主容器及方法
技术领域
本发明涉及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的方法,其特征在于:所述交互操作包括键盘操作、鼠标操作、手写笔操作、手势操作。
CN201710004552.3A 2017-01-04 2017-01-04 WPF中播放Flash的宿主容器及方法 Active CN106843944B (zh)

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)

* Cited by examiner, † Cited by third party
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 国家电网公司 一种用于显示屏矩阵的单数据多模式展示***

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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