36.Silverlight中播放视频和打印文档【附带源码实例】
在silverlight实际项目中时常会需要播放视频和打印文档,在本节中我们将制作一个最简单的播放视频和打印文档的实例。
一、播放WMV视频
首先我们创建一个Silverlight应用程序SLShowVideo,然后放一个示例Wmv视频在SLShowVideo.web项目的根目录下面。
然后我们在Xaml文档中放入一个MediaElement控件,并写入以下代码:
- <MediaElement Height="377" HorizontalAlignment="Left" Margin="8,31,0,0"
- Name="showVideo" VerticalAlignment="Top" Width="583" />
- <Button Content="播 放" Height="28" HorizontalAlignment="Left" Margin="194,428,0,0"
- Name="button1" VerticalAlignment="Top" Width="99" Click="button1_Click_1" />
- <Button Content="暂 停" Height="28" HorizontalAlignment="Left" Margin="333,428,0,0"
- Name="button3" VerticalAlignment="Top" Width="99" Click="button3_Click" />
- <Button Content="停 止" Height="28" HorizontalAlignment="Left" Margin="468,428,0,0"
- Name="button2" VerticalAlignment="Top" Width="99" Click="button2_Click" />
- <Button Content="加载视频" Height="28" HorizontalAlignment="Left" Margin="57,428,0,0"
- Name="button4" VerticalAlignment="Top" Width="99" Click="button1_Click"/>
最后我们写入以下代码加载视频并且控制视频的播放:
- #region 播放视频
- private void button1_Click(object sender, RoutedEventArgs e)
- {
- //加载视频
- this.showVideo.Source = new Uri(GetURL()+"/sampleVideo.wmv");
- }
- /// <summary>
- /// 获取当前网站的Url前缀
- /// </summary>
- /// <returns></returns>
- public static string GetURL()
- {
- ScriptObject location = (HtmlPage.Window.GetProperty("location") as ScriptObject);
- object r = location.GetProperty("href");
- string URL = r.ToString().Substring(0, r.ToString().LastIndexOf('/'));
- //截取到当前SILVERLIGHT程序存放网络URL的前缀
- return URL;
- }
- private void button3_Click(object sender, RoutedEventArgs e)
- {
- //暂停
- this.showVideo.Pause();
- }
- private void button2_Click(object sender, RoutedEventArgs e)
- {
- //停止
- this.showVideo.Stop();
- }
- private void button1_Click_1(object sender, RoutedEventArgs e)
- {
- //播放
- this.showVideo.Play();
- }
- #endregion
二、打印文档
首先我们看XAML文档。添加一个Canvas元素,元素内的所有内容就是我们即将要打印(当然你也可以设置打印Grid等元素的内容)。
- <Canvas Height="376" HorizontalAlignment="Left" Margin="611,32,0,0" Name="canvas1"
- VerticalAlignment="Top" Width="369" >
- <sdk:Label Width="85" Canvas.Left="9" Content="第一个打印程序" Canvas.Top="27" />
- <sdk:Label Canvas.Left="11" Canvas.Top="60" Height="16" Content="第二个打印程序"
- Name="label1" Width="86" />
- </Canvas>
- <Button Content="打印" Height="34" HorizontalAlignment="Left" Margin="747,426,0,0"
- Name="btnPrint" VerticalAlignment="Top" Width="110" Click="btnPrint_Click" />
在Button事件处理程序中我们添加一下代码打印Canvas元素。
- #region 打印文档
- PrintDocument print;
- private void btnPrint_Click(object sender, RoutedEventArgs e)
- {
- print = new PrintDocument();
- //添加一个打印页面事件以设置需要打印的控件
- print.PrintPage += new EventHandler<PrintPageEventArgs>(print_PrintPage);
- print.Print("canvas1");
- }
- void print_PrintPage(object sender, PrintPageEventArgs e)
- {
- //设置打印this.canvas1的所有内容
- e.PageVisual = this.canvas1;
- }
- #endregion
本实例采用VS2010+Silverlight 4.0编写。如需源码请点击 SLShowVideo.zip 下载。期待Silverlight 5 beta的到来。下面我们看实例的效果图:
转载于:https://blog.51cto.com/chengxingliang/822567
36.Silverlight中播放视频和打印文档【附带源码实例】相关推荐
- commons-math3-3.6.1-org.apache.commons.math3.analysis.function-包下的类(三)-中英对照文档及源码赏析
commons-math3-3.6.1-org.apache.commons.math3.analysis.function-包下的类(三)-中英对照文档及源码赏析 摘要:中英对照文档.源码赏析.or ...
- commons-math3-3.6.1-org.apache.commons.math3.analysis.function-包下的类(二)-中英对照文档及源码赏析
commons-math3-3.6.1-org.apache.commons.math3.analysis.function-包下的类(二)-中英对照文档及源码赏析 摘要:中英对照文档.源码赏析.or ...
- commons-math3-3.6.1-org.apache.commons.math3.analysis.integration-包下的类-中英对照文档及源码赏析
commons-math3-3.6.1-org.apache.commons.math3.analysis.integration-包下的类-中英对照文档及源码赏析 摘要:中英对照文档.源码赏析.or ...
- commons-math3-3.6.1-org.apache.commons.math3.analysis.differentiation-包下的接口-中英对照文档及源码赏析
commons-math3-3.6.1-org.apache.commons.math3.analysis.differentiation-包下的接口-中英对照文档及源码赏析 摘要:中英对照文档.源码 ...
- commons-math3-3.6.1-org.apache.commons.math3.analysis.integration.gauss-包下的类-中英对照文档及源码赏析
commons-math3-3.6.1-org.apache.commons.math3.analysis.integration.gauss-包下的类-中英对照文档及源码赏析 摘要:中英对照文档.源 ...
- Live555源码阅读笔记(一):源码介绍文档 及 源码目录结构
目录 一.Live555介绍 1.Live555项目介绍 2.官网及帮助文档介绍 二.源码目录结构 1.UsageEnvironment 2.BasicUsageEnvironment 3.group ...
- Manim文档及源码笔记-CE文档-示例库3使用Manim绘图
Manim文档及源码笔记-CE文档-示例库3使用Manim绘图 参考原文: Manim Community Edition Example Gallery 前言 笔记随想: 暂未发现官方中文版,自己实 ...
- popper.js——tooltip文档及源码分析
popper.js之tooltip文档及源码分析 popper说明 由于popper.js这个名字比较大众化,有必要说明一下具体指的是哪一个: 没错就是你想的这个: https://popper.js ...
- 含文档+PPT+源码等]精品基于SSM的图书管理系统[包运行成功]
博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 含文档+PPT+源码等]精品基于SSM的图书管理系统[包运行成功] 系统介绍 & ...
最新文章
- Golang 编译MIPS helloworld程序出现 Illegal instruction 或者helloworld: applet not found 的解决
- python 网络通讯 plc_PLC与PC网络通信实验
- DDIC和SAP*被锁定后如何解锁或重置密码
- 这个 “少年黑客”,用黑科技守护独居老人
- rsyslog+mysql+loganalyzer 环境搭建日志服务器
- 不连续曲线 highcharts_什么是正则曲线和正则曲面
- JS中格式化数据保留两位小数
- jl计算机二级c语言考什么,计算机等级考试二级C语言考前密卷(9)2
- java点击按钮在控制台输出_java 怎么获取控制台的数据并且输出到GUI上
- using在sql中是什么意思_扇贝英语地道表达法——“call for”是什么意思呢?
- 20道你必须要背会的微服务面试题,面试一定会被问到
- 判断一个很大的数是否是11的倍数(2种做法)
- H5C3第二个完整大项目————天猫国际首页跳转登录页
- Windows系统邮件中如何绑定QQ邮箱
- sql server 不是可以识别的 内置函数名称
- 服务器外链图片不显示,新浪图床已限制图片外链使用(附解决方法)
- viewerjs 在html打开图片或打开pdf文件使用案例
- 通信类会议期刊排名(转)
- 最实用的简历模板之一:QQ邮箱免费简历模板
- 关于GPS车载终端的研究
热门文章
- VTK:Rendering之CameraBlur
- VTK:PolyData之ColorDisconnectedRegionsDemo
- VTK:图表之EdgeWeights
- c++ 读取数字,直到输入非数字字符为止的算法(附完整源码)
- C语言实现线索二叉树Threaded Binary Tree (附完整源码)
- C和C++循环链表的设计与实现
- linux制作openssl rpm,CentOS 7 定制 OpenSSL RPM 包
- 通过yarn上的applicationId杀死hadoop中的任务,或通过hadoop job命令停止任务、yarn container 的日志路径
- 如何用Redlock实现分布式锁
- 1.多彩的幕布CCLayerColor,CCLayerGradient