0

次のコードを使用して、asp.net マスター ページに Silverlight コンテンツを追加しました。

<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 MainPage.xaml にはボタンがあり、ボタンをクリックすると ChildWindow が開きます。

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

            PPW.Show();
        }

問題は、子ウィンドウがマスターページにのみ表示され、asp.netマスターページとコンテンツページで画面全体をカバーしていないことです。フルスクリーンでchildWindowを表示するにはどうすればよいですか

4

1 に答える 1

0

あなたが求めていると思うのは、ページの一部でサブコンテンツ (つまり、Silverlight オブジェクト) のみがホストされているときに、Silverlight がページ全体で「ブロック」を実行することです。理論的には、Silverlight アプリは、それを表すオブジェクト全体に対してのみブロックを実行できます。そのオブジェクトはその「div」に保持されているため、せいぜいその div までしかブロックできません。それ以外では、メッセージを介して他の要素とのみ通信できますが、求めるオーバーレイ/ブロッキングを提供することはできません。したがって、答えは別の角度から問題を見ることです (この問題を解決することは可能です...)..(悲しい解決策は無視してください)

あなたの選択肢は何ですか?

悲しい解決策: - ブロックしたいすべてのアイテムを aspx ページではなく Silverlight コントロールに含めます - アプリ全体を Silverlight に配置します...実際には実現可能ではありません

実際の解決策 - 表示したい画像の場合は、その画像を aspx サイトの一時サブ ディレクトリにレンダリングし、JavaScript 関数を定義して、ライト ボックスを表示してページ上でブロックを実行し、Silverlight からその JavaScript ボタンを呼び出します (最善の策です)。- テキストまたはその他の場合は、前述のオプションと同様の手法を使用します。- JavaScript などからのライトボックスが閉じられたら、Silverlight メソッドを呼び出して (必要な場合)、Silverlight オブジェクトを更新します。

Silverlight と JavaScript の間でやり取りする方法の例は、私が回答した別の投稿にあります。こちら - ASP.NET MVC から Silverlight への通信

于 2012-02-25T18:59:25.707 に答える