• Silverlight4.0教程之轻松操作剪切板


    微软于PDC2009上发布Silverlight 4 Beta版,微软在Silverlight 4版本中处理了约8000个的Silverlight终端用户的请求,加入了一系列另开发人员兴奋的新特性,最突出的主要体现在几个方面:

    开发工具增强:Visual Studio 2010具有可视化的设计工具,创建项目时可以选择运行时版本是3.0还是4.0,BLEND4加入XAML和C#代码全方位智能感知功能、XAML的样式应用更为易用等。

    摄像头与MIC硬件支持:可以用极少量的代码实现启用用户本机的WebCam和Mic,并可进行本地录制。

    报表打印支持:报表打印问题在Silverlight4中得到的较好的解决。

    更强大的基础类控件(RichTextBox、DataGrid增强版):富文本控件RichTextBox和具有可粘贴、排序功能的DataGrid被加入。

    WCF增强:终于支持TCP通讯,比较HTTP提升3-5倍,限于4502-4534端口。

    兼容性增强:对Google的Chrome浏览器的支持。

    MEF支持:MEF全称为Managed Extensibility Framework,译为“托管扩展框架”,支持创建大型复杂的应用程序。

    运行速度提升:启动速度和渲染速度较前个版本提升约2倍左右。

    DRM增强:支持PlayReady,可以对视频和音频的播放进行的保护,补充了对H.264的DRM保护。

    其它增强:本地文件读写、鼠标右键事件支持、剪粘板支持。

          Silverlight 4.0开始加入了System.Windows.Clipboard(剪切板操作)类,有了它我们就可以非常方便的操作剪切板的数据了,这让一些Silverlight应用程序中的文本可以COPY到Clipboard之中,同时你可以将从其它来源COPY到剪切板中的内容粘贴到Silverlight应用程序之中,在此之前我们只能通过JavaScript来访问剪切板。

         接下来我们看一下Clipboard类为我们带来了什么,Clipboard类支持ContainsText、SetText和GetText三个方法,其中ContainsText可以返回一个bool类型的值,让我们知道剪切板目前保存的类型是否是Silverlight所支持的Unicode类型字符,SetText和GetText分别是用来设置和获GetText剪切板的文本数据。

    下面我们看一个Silverlight操作剪切板的实例:

    XAML:

    1     <Grid x:Name="LayoutRoot" Width="400" Height="200" Background="White"> 
    2          <Grid.RowDefinitions> 
    3              <RowDefinition/> 
    4              <RowDefinition/> 
    5          </Grid.RowDefinitions> 
    6          <Grid.ColumnDefinitions> 
    7              <ColumnDefinition /> 
    8              <ColumnDefinition Width="100"/> 
    9          </Grid.ColumnDefinitions> 
    10         <TextBox x:Name="tbCopy" Width="260" Height="30"/> 
    11         <TextBox x:Name="tbPaste" Width="260" Height="30" Grid.Row="1"/> 
    12         <Button Content="复制" Grid.Column="1" 
    13             Click="btnCopy_Click" 
    14             x:Name="btnCopy" Width="80" Height="25"/> 
    15         <Button Content="粘贴" Grid.Column="1" Grid.Row="1"  
    16             Click="btnPaste_Click" 
    17             x:Name="btnPaste" Width="80" Height="25"/> 
    18     </Grid> 

    C#:

    1          private void btnCopy_Click(object sender, RoutedEventArgs e) 
    2          { 
    3              if (tbCopy.Text != string.Empty) 
    4              { 
    5                  //设置剪切板 
    6                  Clipboard.SetText(tbCopy.Text); 
    7              } 
    8          } 
    9  
    10         private void btnPaste_Click(object sender, RoutedEventArgs e) 
    11         { 
    12             //判断剪切板是否包括文本字符 
    13             if (Clipboard.ContainsText()) 
    14             { 
    15                 //获取剪切板 
    16                 tbPaste.Text = Clipboard.GetText(); 
    17             } 
    18         } 

    运行结果如图所示。

    image

    第一次运行SetText会让用户确认是否允许Silverlight操作剪切板,如果用户点击否会引发Clipboard access is not allowed异常。

    image

    下图完成粘贴(Paste)操作。

     

     

     

    image

          需要注意的是Silverlight与WPF不同的是,Silverlight仅仅支持Unicode字符类型的剪切板操作,还不能像WPF那像可以对不同的类型的剪切板操作,尽管如此,但是至少是Silverlight技术的一个增强,正是这种不断的进步使更多的理想在Silverlight中变为可能。

  • 相关阅读:
    PHPNow升级PHP版本为5.3.5的方法(转)
    常用Raspberry Pi周边传感器的使用教程(转)
    Raspberry pi 使用python+pySerial实现串口通信(转)
    树莓派相关-树莓派串口配置方法(转)
    树莓派折腾---红外探测
    String.format和MessageFormat.format的对比用法
    使用FastJson从json串中根据key获取value
    使用HttpClient配置代理服务器模拟浏览器发送请求调用接口测试
    gradle查看依赖关系并写入到文本文件的命令
    使用 "java -jar"命令启动jar包时报不支持的jdk版本异常
  • 原文地址:https://www.cnblogs.com/Areas/p/2195062.html
Copyright © 2020-2023  润新知