在silverlight实际项目中时常会需要播放视频和打印文档,在本节中我们将制作一个最简单的播放视频和打印文档的实例。

一、播放WMV视频

首先我们创建一个Silverlight应用程序SLShowVideo,然后放一个示例Wmv视频在SLShowVideo.web项目的根目录下面。

然后我们在Xaml文档中放入一个MediaElement控件,并写入以下代码:

  1. <MediaElement Height="377" HorizontalAlignment="Left" Margin="8,31,0,0"
  2. Name="showVideo" VerticalAlignment="Top" Width="583" />
  3. <Button Content="播 放" Height="28" HorizontalAlignment="Left" Margin="194,428,0,0"
  4. Name="button1" VerticalAlignment="Top" Width="99" Click="button1_Click_1" />
  5. <Button Content="暂 停" Height="28" HorizontalAlignment="Left" Margin="333,428,0,0"
  6. Name="button3" VerticalAlignment="Top" Width="99" Click="button3_Click" />
  7. <Button Content="停 止" Height="28" HorizontalAlignment="Left" Margin="468,428,0,0"
  8. Name="button2" VerticalAlignment="Top" Width="99" Click="button2_Click" />
  9. <Button Content="加载视频" Height="28" HorizontalAlignment="Left" Margin="57,428,0,0"
  10. Name="button4" VerticalAlignment="Top" Width="99" Click="button1_Click"/>

最后我们写入以下代码加载视频并且控制视频的播放:

  1. #region 播放视频
  2. private void button1_Click(object sender, RoutedEventArgs e)
  3. {
  4. //加载视频
  5. this.showVideo.Source = new Uri(GetURL()+"/sampleVideo.wmv");
  6. }
  7. /// <summary>
  8. /// 获取当前网站的Url前缀
  9. /// </summary>
  10. /// <returns></returns>
  11. public static string GetURL()
  12. {
  13. ScriptObject location = (HtmlPage.Window.GetProperty("location") as ScriptObject);
  14. object r = location.GetProperty("href");
  15. string URL = r.ToString().Substring(0, r.ToString().LastIndexOf('/'));
  16. //截取到当前SILVERLIGHT程序存放网络URL的前缀
  17. return URL;
  18. }
  19. private void button3_Click(object sender, RoutedEventArgs e)
  20. {
  21. //暂停
  22. this.showVideo.Pause();
  23. }
  24. private void button2_Click(object sender, RoutedEventArgs e)
  25. {
  26. //停止
  27. this.showVideo.Stop();
  28. }
  29. private void button1_Click_1(object sender, RoutedEventArgs e)
  30. {
  31. //播放
  32. this.showVideo.Play();
  33. }
  34. #endregion

二、打印文档

首先我们看XAML文档。添加一个Canvas元素,元素内的所有内容就是我们即将要打印(当然你也可以设置打印Grid等元素的内容)。

  1. <Canvas Height="376" HorizontalAlignment="Left" Margin="611,32,0,0" Name="canvas1"
  2. VerticalAlignment="Top" Width="369" >
  3. <sdk:Label Width="85" Canvas.Left="9" Content="第一个打印程序" Canvas.Top="27" />
  4. <sdk:Label Canvas.Left="11" Canvas.Top="60" Height="16" Content="第二个打印程序"
  5. Name="label1" Width="86" />
  6. </Canvas>
  7. <Button Content="打印" Height="34" HorizontalAlignment="Left" Margin="747,426,0,0"
  8. Name="btnPrint" VerticalAlignment="Top" Width="110" Click="btnPrint_Click" />

在Button事件处理程序中我们添加一下代码打印Canvas元素。

  1. #region 打印文档
  2. PrintDocument print;
  3. private void btnPrint_Click(object sender, RoutedEventArgs e)
  4. {
  5. print = new PrintDocument();
  6. //添加一个打印页面事件以设置需要打印的控件
  7. print.PrintPage += new EventHandler<PrintPageEventArgs>(print_PrintPage);
  8. print.Print("canvas1");
  9. }
  10. void print_PrintPage(object sender, PrintPageEventArgs e)
  11. {
  12. //设置打印this.canvas1的所有内容
  13. e.PageVisual = this.canvas1;
  14. }
  15. #endregion

本实例采用VS2010+Silverlight 4.0编写。如需源码请点击  SLShowVideo.zip  下载。期待Silverlight 5 beta的到来。下面我们看实例的效果图:

转载于:https://blog.51cto.com/chengxingliang/822567

36.Silverlight中播放视频和打印文档【附带源码实例】相关推荐

  1. commons-math3-3.6.1-org.apache.commons.math3.analysis.function-包下的类(三)-中英对照文档及源码赏析

    commons-math3-3.6.1-org.apache.commons.math3.analysis.function-包下的类(三)-中英对照文档及源码赏析 摘要:中英对照文档.源码赏析.or ...

  2. commons-math3-3.6.1-org.apache.commons.math3.analysis.function-包下的类(二)-中英对照文档及源码赏析

    commons-math3-3.6.1-org.apache.commons.math3.analysis.function-包下的类(二)-中英对照文档及源码赏析 摘要:中英对照文档.源码赏析.or ...

  3. commons-math3-3.6.1-org.apache.commons.math3.analysis.integration-包下的类-中英对照文档及源码赏析

    commons-math3-3.6.1-org.apache.commons.math3.analysis.integration-包下的类-中英对照文档及源码赏析 摘要:中英对照文档.源码赏析.or ...

  4. commons-math3-3.6.1-org.apache.commons.math3.analysis.differentiation-包下的接口-中英对照文档及源码赏析

    commons-math3-3.6.1-org.apache.commons.math3.analysis.differentiation-包下的接口-中英对照文档及源码赏析 摘要:中英对照文档.源码 ...

  5. commons-math3-3.6.1-org.apache.commons.math3.analysis.integration.gauss-包下的类-中英对照文档及源码赏析

    commons-math3-3.6.1-org.apache.commons.math3.analysis.integration.gauss-包下的类-中英对照文档及源码赏析 摘要:中英对照文档.源 ...

  6. Live555源码阅读笔记(一):源码介绍文档 及 源码目录结构

    目录 一.Live555介绍 1.Live555项目介绍 2.官网及帮助文档介绍 二.源码目录结构 1.UsageEnvironment 2.BasicUsageEnvironment 3.group ...

  7. Manim文档及源码笔记-CE文档-示例库3使用Manim绘图

    Manim文档及源码笔记-CE文档-示例库3使用Manim绘图 参考原文: Manim Community Edition Example Gallery 前言 笔记随想: 暂未发现官方中文版,自己实 ...

  8. popper.js——tooltip文档及源码分析

    popper.js之tooltip文档及源码分析 popper说明 由于popper.js这个名字比较大众化,有必要说明一下具体指的是哪一个: 没错就是你想的这个: https://popper.js ...

  9. 含文档+PPT+源码等]精品基于SSM的图书管理系统[包运行成功]

     博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 含文档+PPT+源码等]精品基于SSM的图书管理系统[包运行成功] 系统介绍 & ...

最新文章

  1. Golang 编译MIPS helloworld程序出现 Illegal instruction 或者helloworld: applet not found 的解决
  2. python 网络通讯 plc_PLC与PC网络通信实验
  3. DDIC和SAP*被锁定后如何解锁或重置密码
  4. 这个 “少年黑客”,用黑科技守护独居老人
  5. rsyslog+mysql+loganalyzer 环境搭建日志服务器
  6. 不连续曲线 highcharts_什么是正则曲线和正则曲面
  7. JS中格式化数据保留两位小数
  8. jl计算机二级c语言考什么,计算机等级考试二级C语言考前密卷(9)2
  9. java点击按钮在控制台输出_java 怎么获取控制台的数据并且输出到GUI上
  10. using在sql中是什么意思_扇贝英语地道表达法——“call for”是什么意思呢?
  11. 20道你必须要背会的微服务面试题,面试一定会被问到
  12. 判断一个很大的数是否是11的倍数(2种做法)
  13. H5C3第二个完整大项目————天猫国际首页跳转登录页
  14. Windows系统邮件中如何绑定QQ邮箱
  15. sql server 不是可以识别的 内置函数名称
  16. 服务器外链图片不显示,新浪图床已限制图片外链使用(附解决方法)
  17. viewerjs 在html打开图片或打开pdf文件使用案例
  18. 通信类会议期刊排名(转)
  19. 最实用的简历模板之一:QQ邮箱免费简历模板
  20. 关于GPS车载终端的研究

热门文章

  1. VTK:Rendering之CameraBlur
  2. VTK:PolyData之ColorDisconnectedRegionsDemo
  3. VTK:图表之EdgeWeights
  4. c++ 读取数字,直到输入非数字字符为止的算法(附完整源码)
  5. C语言实现线索二叉树Threaded Binary Tree (附完整源码)
  6. C和C++循环链表的设计与实现
  7. linux制作openssl rpm,CentOS 7 定制 OpenSSL RPM 包
  8. 通过yarn上的applicationId杀死hadoop中的任务,或通过hadoop job命令停止任务、yarn container 的日志路径
  9. 如何用Redlock实现分布式锁
  10. 1.多彩的幕布CCLayerColor,CCLayerGradient