在Silverlight中打开网页的几种方法

摘要:
在Silverlight中打开网页是一件很简单的事情,本文来概述一下这几种方法,你会发现,每一种方法需要编写的代码都少的可怜,甚至没有。如果Silverlight对象的EnableHtmlAccess设置为“false”的话,会抛出异常。只能在Silverlight的可见区域里、由用户触发的单击事件中调用此方法,且每个事件中只能调用一次此方法。可以通过System.Windows.Browser.HtmlPage.IsPopupWindowAllowed属性来检查是否满足上述条件。

在Silverlight中打开网页是一件很简单的事情,本文来概述一下这几种方法,你会发现,每一种方法需要编写的代码都少的可怜,甚至没有。

1.HyperLinkButton控件

这是最简单的方法,只需要设置几个属性即可:

  • NavigateUri:想要打开的网页地址
  • TargetName:目标框架,既_blank、_parent等

例如:

<HyperlinkButtonNavigateUri="http://coding.windstyle.cn"TargetName="_blank"/>

注意:如果Silverlight对象的EnableNavigation设置为“none”的话,会抛出异常。

2.HtmlWindow.Navigate

如果需要以编程的方式打开页面的话,就可以调用HtmlWindow.Navigate方法。

例如:

System.Windows.Browser.HtmlPage.Window.Navigate(newUri("http://blog.windstyle.cn", UriKind.Absolute), "_blank");

注意:

  • 只有当Silverlight运行在浏览器中时才可以调用此方法。
  • 如果Silverlight对象的EnableHtmlAccess设置为“false”的话,会抛出异常。

3.HtmlPage.PopupWindow

调用HtmlPage.PopupWindow方法会以弹出窗口的形式打开网页。

例如:

System.Windows.Browser.HtmlPage.PopupWindow(newUri("http://coding.windstyle.cn", UriKind.Absolute),
"_blank",
newSystem.Windows.Browser.HtmlPopupWindowOptions()
{
Width = 500,
Height = 500
});

注意:

  • 只有当Silverlight运行在浏览器中时才可以调用此方法。
  • 如果Silverlight对象的EnableHtmlAccess设置为“false”的话,会抛出异常。
  • 如果Silverlight对象的AllowHtmlPopupwindow需要设置为“true”。
  • 只能在Silverlight的可见区域里、由用户触发的单击事件中调用此方法,且每个事件中只能调用一次此方法。
  • 可以通过System.Windows.Browser.HtmlPage.IsPopupWindowAllowed属性来检查是否满足上述条件。
  • 如果浏览器不阻止Javascript的window.open调用的话,此方法还会返回一个HtmlWindow对象,否则返回null。

4.脱离浏览器时打开网页

以上两种编程的方法都只能在浏览器中进行,如果想要在脱离浏览器运行的时候打开网页的话,需要稍微写几行代码。思路很简单,既然HyperLinkButton控件是在任何情况下都可以通用的,那么就从它来派生一个类:

internalclassOOBHyperLinkButton : HyperlinkButton
{
voidDoClick()
{
base.OnClick();
}
publicstaticvoidOpenWebPage(Uri uri, stringtargetName)
{
OOBHyperLinkButton btn = newOOBHyperLinkButton();
btn.NavigateUri = uri;
btn.TargetName = targetName;
btn.DoClick();
}
}

然后只需要调用OOBHyperLinkButton.OpenWebPage 即可。

本文来自Windie Chai的博客,原文地址:http://coding.windstyle.cn/2011/01/01/open-web-page-in-silverlight/

免责声明:内容来源于网络,仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇validateRequest 相关的作用Java源码阅读-Integer(基于jdk1.8)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Windows Phone 7 优秀开源项目收集

    在介绍正题之前,先向大家推荐一个非常好的网站,它的维护者是微软前Silverlight程序经理。此网站提供了关于Windows Phone 7的大量开发资源,包括很多框架,控件,开源项目和Metro风格的图标以及其他珍贵内容,可以说是保罗万象,强烈推荐!下面是网站的截图,点击可进入:     现在进入正题,我在CodePlex网站中精心挑选了一些...

关于silverlight的combobox选择项改变的问题

昨天接手一个项目,要帮忙做项目里的一个项目统计功能罢了,本来也没什么,麻烦就在于,它要用silverlight.所以然遇到了一路问题。其中之一就是这个[Silverlight中为ComboBox设定当前选择项]。网上搜了大堆资料,其中大同小异,答案如下: 方法一: this.comboBox1.SelectedItem = (from p in this...

关于微软Silverlight,你应该知道的10件事

对于任何成长中的企业来说,设计一个合适的网站是一件非常重要的事情,但是如何让你的网站具有富互联网应用程序(Rich Internet Applications,RIA)的体验却不是那么简单。为了在这方面为开发者减轻负担,微软最近推出了Silverlight——这是一个针对Web开发者而推出的跨平台、跨浏览器的插件。这个目前以“候选版”形式提供的插件可以支持...

WCF RIA Services使用详解

理解领域服务和领域操作 本文目录: 3.1 WCF Ria Services简介 3.1.1 什么是WCF Ria Services 3.1.2 WCF Ria Services如何生成客户端代码 3.1.3 如何使用WCF Ria Services 3.2 实战WCF Ria Services开发 3.2.1 使用Silverlight业务应用程序项目模...

Silverlight4正式版开发工具整合下载(MIX2010 RC)

微软在MIX2010大会上发布了VS2010RC+Silverlight 4.0RunTime RC和Silverlight Tools 4.0 RC for Visual Studio 2010RC的组合,RC是正式版前的候选版,功能和稳定性与RTM相差无几,所以大家可以放心下载使用。 目前http://Silverlight.net上并没有提供RC版本...

学习使用Bing Maps Silverlight Control(五):离线使用和自定义地图模式

6 离线使用 在笔记第一部分的时候就提到如果要使用Bing Maps Silverlight Control 进行开发,需要申请一个key,不让会显示一个错误提示出来。但是在实际开发或使用过程中,使用环境和地图数据可能不是在线的,但控件因为验证失败仍然会显示以下内容: 如何去掉这个提示?最简单的方式就是自己扩展一个Map控件,在其构造方法中将错误提示层给...