在silverlight4中支持剪切板(clipboard)。一个名为System.Windows.Clipboard的类被添加进来,它包含3个静态方法来访问当前系统的剪切板。
之前在Silverlight3时可以使用编程的方式拷贝TextBox中的内容,但是有反映说会出现一些系统不兼容的问题。
在Silverlight4的beta版时,剪切板只能够支持Unicode字符的拷贝,现在的版本我试了下可以支持GB2312编码的拷贝。
废话不多说了,给大家个例子,抛砖引玉。。。。。
创建一个Silverlight的应用程序:
<Grid x:Name="LayoutRoot">
<Grid.Background>
<LinearGradientBrush StartPoint="0.5,0.0" EndPoint="0.5,1.0">
<GradientStop Offset="0.0" Color="Black" />
<GradientStop Offset="1.0" Color="#FF404040" />
</LinearGradientBrush>
</Grid.Background>
<StackPanel Orientation="Vertical">
<Button x:Name="PasteButton" Width="100" Height="50" Margin="32"
Content="Paste" IsEnabled="False" Click="Button_Click" />
<TextBlock x:Name="Output" Foreground="White" FontSize="20"
textwrapping="Wrap" HorizontalAlignment="Center"
VerticalAlignment="Center" Margin="32,32,32" />
</StackPanel>
</Grid>
然后是后面的事件处理,Button的click事件:
private void Button_Click(object sender,RoutedEventArgs e)
{
try
{
Output.Text = Clipboard.GetText();
}
catch (SecurityException ex)
{
MessageBox.Show(ex.Message);
}
}
这里添加一个计时器,来看当前的剪切板是否有内容,有的话就让button失效.
接下来是见证奇(鸡)的时刻,呵呵。。。。。。。。。。。。。。。。
我把我当前word的内容全选,然后Ctrl+C,然后运行一下上面的程序,点击paste按钮,现在我的页面内容如下图所示:
。。。。。。。。。。。。。。。。。。。
另外一个参考文章:http://weblogs.asp.net/lduveau/archive/2009/11/21/silverlight-4-clipboard-access.aspx
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。