在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/