在Silverlight中打开网页是一件很简单的事情,本文来概述一下这几种方法,你会发现,每一种方法需要编写的代码都少的可怜,甚至没有。
1.HyperLinkButton控件
这是最简单的方法,只需要设置几个属性即可:
- NavigateUri:想要打开的网页地址
- TargetName:目标框架,既_blank、_parent等
例如:
<
HyperlinkButton
NavigateUri
=
"http://coding.windstyle.cn"
TargetName
=
"_blank"
/>
|
注意:如果Silverlight对象的EnableNavigation设置为“none”的话,会抛出异常。
2.HtmlWindow.Navigate
如果需要以编程的方式打开页面的话,就可以调用HtmlWindow.Navigate方法。
例如:
System.Windows.Browser.HtmlPage.Window.Navigate(
new
Uri(
"http://blog.windstyle.cn"
, UriKind.Absolute),
"_blank"
);
|
注意:
- 只有当Silverlight运行在浏览器中时才可以调用此方法。
- 如果Silverlight对象的EnableHtmlAccess设置为“false”的话,会抛出异常。
3.HtmlPage.PopupWindow
调用HtmlPage.PopupWindow方法会以弹出窗口的形式打开网页。
例如:
System.Windows.Browser.HtmlPage.PopupWindow(
new
Uri(
"http://coding.windstyle.cn"
, UriKind.Absolute),
"_blank"
,
new
System.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控件是在任何情况下都可以通用的,那么就从它来派生一个类:
internal
class
OOBHyperLinkButton : HyperlinkButton
{
void
DoClick()
{
base
.OnClick();
}
public
static
void
OpenWebPage(Uri uri,
string
targetName)
{
OOBHyperLinkButton btn =
new
OOBHyperLinkButton();
btn.NavigateUri = uri;
btn.TargetName = targetName;
btn.DoClick();
}
}
|
然后只需要调用OOBHyperLinkButton.OpenWebPage 即可。
本文来自Windie Chai的博客,原文地址:http://coding.windstyle.cn/2011/01/01/open-web-page-in-silverlight/