2012-02-25 43 views
0

我使用的是asp.net.i的Silverlight已經在Silverlight中MainPage.xaml中我有一個使用下面的代碼的Silverlight ChildWindow用asp.net母版

<div style="width:200px"> 
    <object data="data:application/x-silverlight-2," 
      type="application/x-silverlight-2" width="100%" style="height: 1000px"> 
      <param name="source" value="ClientBin/SilverlightSummary.xap"/> 
      <param name="onError" value="onSilverlightError" /> 
      <param name="background" value="white" /> 
      <param name="minRuntimeVersion" value="4.0.50401.0" /> 
      <param name="autoUpgrade" 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="Get Microsoft Silverlight" style="border-style:none"/> 
      </a> 
     </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe> 
    </div> 

添加Silverlight內容到asp.net母版頁按鈕,當點擊按鈕時,它會打開一個ChildWindow。

private void btnView_Click(object sender, RoutedEventArgs e) 
     { 
      PopUpWindow PPW = new PopUpWindow(); 
      PPW.chart1.DataContext = App.Current.Resources["ChartResult"]; 

      PPW.Show(); 
     } 

問題是子窗口僅顯示母版,它不涉及與asp.net母版頁整個屏幕和內容page.how我可以把它展現childWindow FUL屏幕

回答

0

我想你問的是Silverlight在整個頁面上執行「阻塞」,當只有子內容(即silverlight對象)被託管在頁面的一小部分中時。理論上,Silverlight應用程序只能對錶示它的整個對象執行阻塞操作。那個對象被保留在那個「div」中,所以最好的情況是它只能阻止那個div。除此之外,它只能通過消息與其他元素進行通信,但不能提供您尋求的覆蓋/阻止。所以答案是從另一個角度來看問題(可以解決這個問題......)(忽略傷心的解決方案)

你有什麼選擇?

傷心解決方案: - 包括所有你希望在Silverlight控件,而不是 aspx頁面上阻斷項目 - 將整個應用程序在Silverlight ...不是真的可行

的實數解 - 如果是想要顯示的圖像,將圖像渲染到aspx站點的臨時子目錄,定義一個javascript函數通過顯示燈箱在頁面上執行阻塞,然後從silverlight調用該javascript按鈕最好的選擇)。 - 如果是文字或其他文字,請使用與上述選項類似的技巧。 - 當來自javascript或者其他的燈箱關閉時,調用silverlight方法(如果需要的話)來刷新silverlight對象。

如何在silverlight和javascript之間來回溝通的例子在我已經回答的另一篇文章中。這裏 - ASP.NET MVC to Silverlight Communication