Silverlight ChildWindow с главной страницей asp.net

Я использую silverlight с asp.net. Я добавил содержимое silverlight на главную страницу 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 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 на полном экране


person chamara    schedule 25.02.2012    source источник


Ответы (1)


Я думаю, вы просите, чтобы Silverlight выполнял «блокировку» на всей странице, когда только вспомогательное содержимое (то есть объект silverlight) размещается на части страницы. Теоретически приложение silverlight может выполнять блокировку только для всего объекта, который его представляет. Этот объект содержится в этом «div», поэтому в лучшем случае он может блокироваться только до этого div. В остальном он может связываться с другими элементами только через сообщения, но не может обеспечить нужное вам наложение / блокировку. Так что ответ - взглянуть на проблему под другим углом (можно решить эту проблему ...) .. (Не обращайте внимания на печальные решения)

Какие у вас есть варианты?

Печальные решения: - включите все элементы, которые вы хотите заблокировать, в элемент управления silverlight, а не на страницу aspx - поместите все приложение в silverlight ... на самом деле это невозможно

Реальные решения. Если это изображение, которое вы хотите показать, визуализируйте изображение во временном подкаталоге сайта aspx, определите функцию javascript для выполнения блокировки на странице путем отображения светового поля, затем вызовите эта кнопка javascript от silverlight (вам лучше всего). - Если это текст или другое, используйте ту же технику, что и вышеупомянутый вариант. - Когда лайтбокс из javascript или около того закрывается, вызовите метод silverlight (при необходимости), чтобы обновить объект silverlight.

Пример того, как общаться между silverlight и javascript, находится в другом посте, на который я ответил. Здесь - связь ASP.NET MVC с Silverlight

person Neel Edwards    schedule 25.02.2012