出于安全因素的考虑,Silverlight应用程序并不能过多的访问本地资源,比如说它只有openFileDialog而没有saveFileDialog,另外SilverLight也不能直接操作Windows剪切板。
在我们设计Form程序的时候,时常要用到剪切板资源,在.net下,只要操作System.Windows.ClipBoard类下的各个静态方法就能过实现我们的需求。但是SilverLight程序集作为WPF的一个子集,并没有ClipBoard这个类。但是如果我们想在SilverLight中访问剪切板资源的话,就要另辟蹊径。由于SilverLight中有与asp.net以及HTML DOM交互的机制,因此我们大可以通过这种途径来实现SilverLight访问剪切板的目的。
<script type="text/javascript">
function copyToClipBoard() {
if (arguments.length > 0) {
window.clipboardData.setData("abcd", arguments[0]);
}
}
</script>
在HTML和aspx文件(调用SilverLight程序xap的载体)中,添加这段js代码,然后改写app.xaml.cs文件如下:
public App()
{
this.Startup += this.Application_Startup;
this.Exit += this.Application_Exit;
this.UnhandledException += this.Application_UnhandledException;
InitializeComponent();
}
private void Application_Startup(object sender, StartupEventArgs e)
{
Page p = new Page();
System.Windows.Browser.HtmlPage.RegisterScriptableObject("SilverlightApplication", p);
this.RootVisual = p;
}
版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明!