在Silverlight中打開網頁的幾種方法


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM