Загрузка xaml с событиями и пользовательскими классами в фрейм Silverlight, размещенный в html, во время выполнения - PullRequest
0 голосов
/ 02 ноября 2009

Вот сценарий:

Приложение Silverlight (просто каркас), которое размещено на html-странице (без решения aspx / на стороне сервера, только html-страница на стороне клиента, загруженная из c: \ somefolder \ mysilverlight.html), фактически оно размещается в Приложение WPF, использующее элемент управления WebBrowser.

Приложение WPF должно динамически вставлять xaml в Silverlight в каркас Silverlight во время выполнения. Так что страница будет обработана.

xaml silverlight, закачиваемый в каркас, представляет собой строку xaml, которая имеет обработчики событий и пользовательские классы. Поэтому я не могу использовать XamlReader.Load.

InitializeFromXaml был удален в Silverlight 3, поэтому я тоже не могу его использовать.

Есть ли другие альтернативы?

Обновление: Я пытаюсь создать легкий редактор Xaml с быстрым предварительным просмотром, и мне нужно загрузить его из строки xaml. Application.LoadComponent работает только для скомпилированных сборок SL

1 Ответ

1 голос
/ 02 ноября 2009

InitializeComponent был заменен Application.LoadComponent. Вы можете вызвать метод следующим образом:

System.Windows.Application.LoadComponent(this, new
 System.Uri("/SL_40308_VS;component/MainPage.xaml", System.UriKind.Relative));

Взгляните на сгенерированный FooPage.g.cs SilverlightProject / obj / debug в проектах Silverlight для полного примера.

Просто вызывая, Silverlight не может скомпилировать код C # во время выполнения.
Ваши варианты:

  1. Переместите ваш код на динамический язык, который Silverlight может интерпретировать во время выполнения. Используя DLR, вы можете использовать код Silverlight в IronPython или IronRuby. DLR позволяет вам динамически загружать код IronPython / IronRuby и связывать его с codebehind. Проверьте этот образец Джимми Шменти .

  2. Скомпилируйте код Silverlight на полной CLR рабочего стола с помощью System.CompilerServices. У Nokola есть отличный пример компиляции на стороне сервера, который вы можете легко преобразовать в WPF.

  3. Удалить ссылки на код из динамически загруженного XAML. Это звучит как очень уникальное техническое решение, и, возможно, оно неправильное. Что вы пытаетесь сделать, что оправдывает такой крайний подход?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...