• Silverlight4Beta之与剪切板通信


    我在之前的文章《Silverlight4Beta之鼠标右键支持》中提到sl4终于支持鼠标右键了。虽然未提供上下文菜单控件,但是想来实现也并不难。而上下文菜单最普遍的操作便是复制/粘贴/剪切此类的功能,今儿我们就来说说Silverlight4Beta的另外一个简单的新特性:与剪切板通信(在之前的sl版本中,因为没有内置对剪切板通信的支持,我们只能通过调用js的手段实现sl与剪切板的通信)

    没错,sl4确实是支持剪切板了,不过功能倒是少的可怜。

    剪切板的所有功能位于System.Windows.Clipboard这个类之下,让我们看一下它的成员定义:

    public static bool ContainsText(); 剪切板中是否包含文本 public static string GetText(); 得到剪切板中的文本内容

    public static void SetText(string text); 设置剪切板的文本内容

    仅此三个方法而已。成员当真少的可怜,功能也着实简单的过分。正如上面我加的注释一样,sl4只支持处理剪切板中的文本信息,什么图片啦、其他多媒体信息啦就一概别想了。

    接下来我们做一个简单的例子,代码均简单的很,就不详细解释了。

    XAML如下

    <Grid x:Name="LayoutRoot" Background="White">
        <StackPanel Orientation="Horizontal" Height="40">
            <TextBox AcceptsReturn="True" x:Name="txtText" Width="150" />
            <Button Content="复制" Click="Copy" />
            <Button Content="粘贴" Click="Paste" />
        </StackPanel>
    </Grid>

    C#代码如下

    public partial class MainPage : UserControl {
        public MainPage() {
            InitializeComponent();
        }
    
        private void Paste(object sender, RoutedEventArgs e) {
            if (Clipboard.ContainsText())
                txtText.Text = Clipboard.GetText();
        }
    
        private void Copy(object sender, RoutedEventArgs e) {
            if (!string.IsNullOrEmpty(txtText.Text.Trim()))
                Clipboard.SetText(txtText.Text);
        }
    }

    运行效果如下:

    image

    另外出去安全问题,当sl第一次与剪切板通信时需要用户同意

    image 

    关于安全的详细解释可以参见我的这篇博文:《Silverlight4Beta之操作摄像头/麦克风》中的相关内容。

    OK,have fun~

  • 相关阅读:
    LINQ篇:ASP.NET using LINQ(Part One) Scott大师的产物
    运算符重载 operator+[纯属温习啊][附加了一些内容 如:同名属性,复制构造函数]
    Vista中低端电脑如何打开Aero效果或者就是3D效果
    基于可配置化的设计[原创][4.20更新]
    Treeview控件如何在asp.net ajax中使用小技巧
    PetShop 4.0 系列之四 [转]
    XML篇查询语言XPath
    抽象工厂模式[转]
    何时使用委托而不使用接口
    DNN开篇第一话
  • 原文地址:https://www.cnblogs.com/024hi/p/1644238.html
Copyright © 2020-2023  润新知