zoukankan      html  css  js  c++  java
  • 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的到来。下面我们看实例的效果图:
  • 相关阅读:
    ABAP接口用法
    监听textarea数值变化
    The first step in solving any problem is recognizing there is one.
    Wrinkles should merely indicate where smiles have been.
    God made relatives.Thank God we can choose our friends.
    Home is where your heart is
    ABAP跳转屏幕
    Python 工具包 werkzeug 初探
    atom通过remote ftp同步本地文件到远程主机的方法
    Mongodb学习笔记一
  • 原文地址:https://www.cnblogs.com/chengxingliang/p/2013877.html
Copyright © 2011-2022 走看看