在Silverlight中嵌入HTML或aspx頁面


有好幾次遇到有的同志們問,怎么在Silverlight中嵌入其他頁面如:html,aspx或jsp頁面,這里寫一個簡單的使用方法,供大家參考:

下載第三方控件的dll,這里提供一個下載地址:

http://download.csdn.net/source/3231944

 

下面是這個工具的的介紹:Silverlight

下面是配置步驟:

1):將下載資源中的dll(Divelements.SilverlightTools.dll ),添加到Silverlight項目的引用中去。

 

2):在工具箱上右鍵 ,選擇“選擇項”,然后瀏覽到上面那個dll文件所在的位置,點擊添加即可。

 

3):將剛才新添加的組件拖到silverlight編輯頁面中,這時自動添加了對命名空間的引用

xmlns:divtools="clr-namespace:Divelements.SilverlightTools;assembly=Divelements.SilverlightTools"

 

4):在要嵌入的位置加入HtmlHost組件,例如:

<Grid>

       <divtools:HtmlHost x:Name="htmlPlaceholderHost1"  SourceUri="http://www.baidu.com" Margin="-4,21,-1,0"/>

</Grid>

這個控件的SourceUri屬性即是指向你的其他頁面信息,只要給一個Uri地址即可。

 

 

5):最后不要忘了在silverlight 的宿主頁,加上 <param name="Windowless" value ="true" />,否則會彈出窗口報錯“You must be using the Silverlight plugin in windowless mode to use this control.”,示例如下:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

<head>
    <title>TileViewAnimation</title>
    <style type="text/css">
    html, body {
        height: 100%;
        overflow: auto;
    }
    body {
        padding: 0;
        margin: 0;
    }
    #silverlightControlHost {
        height: 100%;
        text-align:center;
    }
    </style>
    <script type="text/javascript" src="Silverlight.js"></script>
    <script type="text/javascript">
        function onSilverlightError(sender, args) {
            var appSource = "";
            if (sender != null && sender != 0) {
              appSource = sender.getHost().Source;
            }
            
            var errorType = args.ErrorType;
            var iErrorCode = args.ErrorCode;

            if (errorType == "ImageError" || errorType == "MediaError") {
              return;
            }

            var errMsg = "Silverlight 應用程序中未處理的錯誤 " +  appSource + "\n" ;

            errMsg += "代碼: "+ iErrorCode + "    \n";
            errMsg += "類別: " + errorType + "       \n";
            errMsg += "消息: " + args.ErrorMessage + "     \n";

            if (errorType == "ParserError") {
                errMsg += "文件: " + args.xamlFile + "     \n";
                errMsg += "行: " + args.lineNumber + "     \n";
                errMsg += "位置: " + args.charPosition + "     \n";
            }
            else if (errorType == "RuntimeError") {           
                if (args.lineNumber != 0) {
                    errMsg += "行: " + args.lineNumber + "     \n";
                    errMsg += "位置: " +  args.charPosition + "     \n";
                }
                errMsg += "方法名稱: " + args.methodName + "     \n";
            }

            引發新錯誤(errMsg);
        }
    </script>
</head>
<body>
    <form id="form1" runat="server" style="height:100%">
    <div id="silverlightControlHost">
        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
          <param name="source" value="ClientBin/TileViewAnimation.xap"/>
          <param name="onError" value="onSilverlightError" />
          <param name="background" value="white" />
          <param name="minRuntimeVersion" value="4.0.50401.0" />
          <param name="autoUpgrade" value="true" />
                  <param name="windowless" value="true"/> <!--這句話很重要必須得加-->
          <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none">
               <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="獲取 Microsoft Silverlight" style="border-style:none"/>
          </a>
        </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
    </form>
</body>
</html>

 

 

貼一個我利用該控件 的一個四畫面視頻界面。


免責聲明!

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



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