通过System Launcher调用第三方应用程序将文本设置为剪贴板

时间:2014-11-26 23:34:31

标签: c# xaml silverlight windows-phone windows-phone-8.1

我在尝试了解如何在WP8.1上调用第三方应用来处理Clipboard setText方法时遇到了一些麻烦。 我知道目前还没有可用的API,所以这是我正在使用的方法,我想从RichEditBox获取文本并将其发送到剪贴板。

    private async void copyClipboard_Click(object sender, RoutedEventArgs e)
    {
        String temp;
        myRichEditBox.Document.GetText(TextGetOptions.None, out temp);
        await Windows.System.Launcher.LaunchUriAsync(new Uri(@"clipboard:?Text=" + temp));
    }

这是发生的事情:我收到一条消息,告诉我我需要第三方应用程序(这没​​关系),我从建议的应用程序列表中安装了Clipboarder,但随后我重新打开了我的应用程序,我点击了按钮触发上面的方法并没有发生任何事情,我看到转换出来,就像操作系统试图打开另一个应用程序(Clipboarder我猜)然后该应用程序崩溃,框架返回到我的应用程序。 每次我尝试,这总是发生。 发射器是否有问题,我的意思是,我在这里错过了一些东西吗?

感谢您的帮助:)

塞尔吉奥

编辑: 我找到了一个解决方案,我补充说:作为答案:D

1 个答案:

答案 0 :(得分:1)

好的,我认为ahahahahah

我会写这个以防万一其他人需要这个:你只需要安装这个库。

https://www.nuget.org/packages/InTheHand.ApplicationModel.DataTransfer/8.2014.4.301

然后在您的应用中添加以下内容:

var data = new DataPackage();
data.SetText("My custom text");
Clipboard.SetContent(data);

当然,您必须在解决方案中添加对库的引用并包含它:

using InTheHand.ApplicationModel.DataTransfer;

现在应用程序会正确地将文本传递给第三方Silverlight应用程序,以便将其写入剪贴板:)