Silverlight实用窍门系列: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的到来。下面我们看实例的效果图:

时间: 2024-11-08 19:01:21

Silverlight实用窍门系列:36.Silverlight中播放视频和打印文档【附带源码实例】的相关文章

在Word 2013中使用草稿品质打印文档

用户可以在Word2013中使用草稿品质打印文档,以便能够以较低的分辨率打印Word文档,从而实现降低耗材费用.提高打印速度的目的,具体操作步骤如下所述: 第1步,打开Word2013文档窗口,依次单击"文件"→"选项"命令,如图2013041819所示. 图2013041819 选择"选项"命令 第2步,打开"Word选项"对话框,切换到"高级"选项卡.在"打印"区域选中"使

在Word 2007中使用草稿品质打印文档

用户可以在Word2007中使用草稿品质打印文档,以便能够以较低的分辨率打印Word文档,从而实现降低耗材费用.提高打印 速度的目的,具体操作步骤如下所述: 第1步,打开Word2007文档窗口,依次单击"Office按钮"→"Word选项"按钮, 如图2012040211所示. 图2012040211 单击"Word选项"按钮 第2步,打开"Word选项"对话框,切换到"高级"选项卡. 在"打印

在Word 2010中使用草稿品质打印文档

用户可以在Word 2010中使用草稿品质打印文档,以便能够以较低的分辨率打印Word文档,从而实现降低耗材费用.提高打印 速度的目的,具体操作步骤如下所述: 第1步,打开Word 2010文档窗口,依次单击"文件"→"选项"命令,如图2011121109所示. 图2011121109 选 择"选项"命令 第2步,打开"Word选项"对话框,切换到"高级"选项卡.在"打印"区域选中&qu

Silverlight实用窍门系列:41.Silverlight中调用麦克风模拟录音机设备,存储为WAV音频【附带实例源码】

   在Silverlight 4中支持了麦克风设置的调用,在本节中我们将调用麦克风设备,然后进行录音,并且将录制的声音存取为Wav音频文件.         第一步.首先我们从AudioSink类派生一个音频接收器类:WavAudioSink.其代码如下所示: public class WavAudioSink:AudioSink { // 设置需要记录的内存流 private MemoryStream _stream; // 设置当前的音频格式 private AudioFormat _fo

Silverlight实用窍门系列:40.Silverlight中捕捉视频,截图保存到本地【附带实例源码】

在Silverlight中我们可以捕捉视频设备以制作视频会议系统,或者通过视频设备截图功能上传头像等功能. 下面我们通过一个简单的实例来访问视频设备,并且截取图像下载该截图文件至本地. 一.在Silverlight运行界面中我们检查系统默认摄像头和麦克风是否可用如下图: 二.我们看Xaml代码如下所示: <Grid x:Name="LayoutRoot" Background="White"> <Border BorderBrush="S

Silverlight实用窍门系列:49.Silverlight中管理独立存储--Isolated Storage【附带实例源码】

Silverlight中的独立存储是其内部的可信任的可访问文件空间,在这里你可以使用Silverlight随意的创建.读取.写入.删除目录和文件,它有一些类似于Cookie,但是它可以在客户端保存大量的数据.这个空间默认是1M,如果不够的时候可以申请扩大容量. 网站+用户+应用程序定位一个独立存储,也就是说必须得相同网站,相同用户,相同应用程序才能够访问这个独立的存储空间.独立存储是IsolatedStorageFile密封类来进行设置的,这个类分布在命名空间System.IO.Isolated

Silverlight实用窍门系列:47.Silverlight中元素到元素的绑定,以及ObservableCollection和List的使用区别

 问题一:在某一些情况下,我们使用MVVM模式的时候,对于某一个字段(AgeField)需要在前台的很多个控件(A.B.C.D.E)进行绑定,但是如何能够让我们后台字段名改变的时候能够非常方便的改变所有使用了这个字段的控件呢?         回答:使用Element to Element Binding,将AgeFiled绑定到A控件,然后再让B.C.D.E控件绑定A控件的使用AgeField字段的属性.         例如:字段(AgeField)的数据是年龄大小,A.B.C.D.E控件分

Silverlight实用窍门系列:44.Silverlight 4.0中进行单元测试 【附带源码实例】

在Silvelight 4.0的项目中我们也需要制作单元测试以保证项目的质量,本节将讲诉如何创建一个项目进行单元测试. 一.创建一个名为SL4UnitAPP的Silverlight 应用程序,不需要Web承载网站. 二.然后鼠标右键点击SL4UnitAPP解决方案,添加一个名为SL4UnitTest的Silverlight Unit Test Application. 三.在平时VS2010 创建项目时无法添加一个Silverlight Unit Test Application,所以我们需要将

Silverlight实用窍门系列:39.Silverlight中使用Frame和Page控件制作导航【附带实例源码】

在Silverlight中有时需要进入不同的XAML页面,但是一般情况下是不能实现"前进"和"后退"的,在这里我们可以使用Frame+Page控件制作导航功能实现上一页和下一页的跳转功能. 在本文中我们制作一个实例如下:添加一个Frame控件,然后点击"加载UC"和"加载PageShow"按钮加载UC.xaml和PageShow.xaml页面.在加载后我们可以通过鼠标右键菜单中的"上一页"和"下一