熟悉WindowsPhone8.0和WindowsPhone8.1开发的朋友都应该很清楚,在windowphone8.0的 开发时代下,我们可以很轻松的使用系统提供的API进行简单的文本拷贝和复制。但是,到了WindowsPhone8.1时代,情况却大不相同,微软竟然把这个API接口给阉割了,这令很多开发者所发指,说实话,我也是很无语的,还好在即将到来的Windows10中,微软又为开发者加上了这个API接口方便开发者进行使用。在本文中,笔者主要讲述在WindowsPhone8.1下该如何解决无法使用系统剪贴板的问题。

1、直接使用剪贴板功能

即使你想直接使用系统的剪贴板功能,那也是很麻烦的(反正我还没有找到相关的直接API,如果有大牛知道相关API,求告知),但是有大牛已经为我们编写了一个类似系统剪贴板的插件,所以只要我们将它安装到我们的WindowsPhone手机上就可以可以实现数据的复制和粘贴。下面介绍一下具体的解决办法:

(1):在我们的当前工程中引入Charming Share 程序包,并在程序集中添加对InTheHand.ApplicationModel.DataTransfer的引用;

(2):在需要使用剪贴功能的页面进行代码编写:

  using InTheHand.ApplicationModel.DataTransfer; //导入命名空间

  var data = new DataPackage();
data.SetText(Info); //参数info表示你需要进行复制到剪贴板上的字符串
Clipboard.SetContent(data);

看到这里,你可能会认为原来在WindowsPhone8.1中使用剪贴板功能原来这么简单。但是,这对于像笔者这样具有强迫症的用户来说却不是很好,因为使用这个简便功能的前提是用户的手机上必须安装一个剪贴板的插件。如果你的手机上没有安装这个软件的话,程序会自动导向这里提示你安装的。所以,对于像笔者这样的人,宁愿不用也不会下载安装的(除非特别有用)。

(3)、参考网站链接:https://www.nuget.org/packages/InTheHand.ApplicationModel.DataTransfer/8.2014.4.301

2、间接使用剪贴板功能

接下来讲一种变通的实现方法。由于我们没办法直接使用系统的剪贴板,并且还很讨厌附带安装软件,所有我们就可以使用一个支持剪贴复制的控件来代替原来不支持剪贴复制功能的控件,笔者这里推荐(优点:不用安装附带的插件,缺点:没办法一次性全部复制,只能由用户手动进行复制),在这里笔者推荐初学者使用RichTextBlock控件,因为它是用起来更方便,样式更灵活,当然还要根据实际情况而论,示例代码如下:

<RichTextBlock TextAlignment="Center" Foreground="{ThemeResource ListViewItemCheckSelectingThemeBrush}">
<Paragraph>
<Run Text="{Binding Info}" FontSize="25"/> //使用了数据绑定
</Paragraph>
</RichTextBlock>

这样一来,我们就可以使用复制粘贴功能,并且调用的还是系统的剪贴板。主要我们进行操作的字符串不是很长,使用这种方法不失为一个两全之策。

没办法,强迫症患者,不喜欢自己的程序在使用中还要依赖别人的程序。

如果您觉得这篇博文对你有所启发,请点赞哦!!!!!

关于在WP8.1中使用剪贴板的问题的更多相关文章

  1. wp8.1 Study13:在WP8.1中分享文件和数据

    绪论:不同于windows, 在wp8.1中,如果不止一个程序可以接受其Uri或者文件,shell会提供一个界面让用户选择用哪个程序.而在windows中,用户可以在设置那里设置各种文件和Uri的默认 ...

  2. [FMX]在你的跨平台应用中使用剪贴板进行复制粘贴

    [FMX]在你的跨平台应用中使用剪贴板进行复制粘贴 2017-08-10 • Android.C++ Builder.Delphi.iOS.教程 • 暂无评论 • swish •浏览 516 次 VC ...

  3. Unity5.x在WP8.1中无法使用Reflection API的解决方法

    下班前随便写点,虽然花了不少时间但是最终得到的解决方法还是比较简单的. 第一种方法:使用WinRTLegacy.dll中的类.这个dll在生成的WP project中是自带的无需在unity工程中添加 ...

  4. WP8.1中C++的winodws运行时组件位移操作的差异

    最近学习WP8.1应用开发,想把C语言的SM3国密算法移植到手机app中.由于把C语言的代码转换成C#代码工作量较大,因此只能用winodws运行时组件来实现. SM3国密算法是一种HASH算法,具体 ...

  5. 在WP8项目中使用ARMASM

    由于之前项目中某些密集运算优化的需要,涉及到ARMASM相关的内容, 所以有幸可以在此分享一下自己的经验. 先铺垫一些知识: 1. ARM处理器有两种指令ARM.THUMB, 在WP8下默认是THUM ...

  6. delphi xe10 中使用剪贴板(跨平台)

    VCL 中如何使用剪贴板咱就不说了,FMX 做为一个新的框架,提供了跨平台的剪贴板支持.FMX 对剪贴板的支持来自两个接口: IFMXClipboardService:位于 FMX.Platform. ...

  7. WP8.1 Study3:WP8.1中Animation应用

    WP8.1上的Animation动画的API和WIN8/WIN8.1上的差不多,网上可以找到很多资料,同时可以去MSDN看官方文档. 下面是我参考一些资料,写出来的例子,希望以后有用. xaml代码如 ...

  8. 如何在WP8模拟器中连接本地的web服务

    这个问题困扰了很久,查找答案一度找偏方向. 其实连接web服务对于wp7不是问题,因为wp7使用的网络就是本机的网络,但是到了wp8模拟器,纯粹的虚拟机,独立的设备,也就有了自己的网络连接,要当做虚拟 ...

  9. wp8模拟器中使用电脑键盘和模拟器的版本解释

    一:如图启用和关闭 二:电脑按键对应的手机的按键 三:模拟器的版本解释

随机推荐

  1. cobbler学习

    note.youdao.com/share/?id=2f8383d6e9824929012b041f069da26e&type=note#/ IPADDR=192.168.86.4 TYPE= ...

  2. array_flip()函数

    array_flip() 函数用于反转/交换数组中所有的键名以及它们关联的键值. array_flip() 函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的键名都 ...

  3. Swagger相关配置记录

    1.SwaggerConfig文件配置 public class SwaggerConfig { protected static string GetXmlCommentsPath() { retu ...

  4. MySQL 基础--字符类型

    ##=====================================================================================## MySQL支持的字符 ...

  5. Thinking in Java from Chapter 10

    From Thinking in Java 4th Edition 内部类 public class Parcel1 { class Contents { private int i = 11; pu ...

  6. Programming Specification

    1. Define variable return_code to record the function's status. int return_code = 0; 2. Define the e ...

  7. Linux - YUM包管理

    简述 rpm是由红帽公司开发的软件包管理方式,使用rpm可以方便的进行软件的安装.查询.卸载.升级等工作. 但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时. Yum(全称 ...

  8. LeetCode:94_Binary Tree Inorder Traversal | 二叉树中序遍历 | Medium

    题目:Binary Tree Inorder Traversal 二叉树的中序遍历,和前序.中序一样的处理方式,代码见下: struct TreeNode { int val; TreeNode* l ...

  9. Python:SQLMap源码精读—基于错误的盲注(error-based blind)

    目标网址 http://127.0.0.1/shentou/sqli-labs-master/Less-5/?id=1 Payload的生成 <test> <title>MyS ...

  10. webpack-loader是怎样炼成的

    目录 啰嗦两句 loader 是干什么的 loader 的工具箱 --context loader 实战 啰嗦两句 学习这件事从学习动机上来看,可以分成两种情况:主动学习和被动学习.主动学习就是,某天 ...