Ошибка «DOM / мост сценариев отключен» в Blend - PullRequest
2 голосов
/ 26 мая 2010

Мне дали использовать пользовательский элемент управления Silverlight, и каждый раз, когда я открываю его в Blend, выдается сообщение об ошибке «Мост DOM / сценарий отключен».

Глядя в исходный код элемента управления, я вижу вызовы

public override void OnApplyTemplate()
    {
           ...
   HtmlPage.Window.Invoke("GetPrimaryGradStart").ToString()

что, я думаю, может быть проблемой. Любые идеи о том, что я могу сделать, или я вернулся к чистому XAML?

ура

1010 * Toby *

1 Ответ

6 голосов
/ 26 мая 2010

обычно (т. Е. Когда приложение Silverlight встроено в страницу HTML) необходимо установить для параметра «enablehtmlaccess» значение true для приложения через HTML или JavaScript, поскольку в противном случае вызовы, такие как HtmlPage.Window.Invoke, не допускаются (и кинь исключение). Поэтому я предполагаю, что проблема в том, что blend не может / не может установить этот параметр и показывает только это сообщение. Если у вас есть контроль над кодом, вы можете добавить условие, которое проверяет, находитесь ли вы в режиме разработки или в режиме выполнения, используя DesignerProperties.IsInDesignTool, например:

if (!DesignerProperties.IsInDesignTool)
{
    // Do the "evil stuff"
    HtmlPage.Window.Invoke("GetPrimaryGradStart");
}

Надеюсь, это поможет.

Ура, Алекс

РЕДАКТИРОВАТЬ: Если это поможет, вы также можете добавить некоторые директивы прекомпилятора в ваш код, чтобы в вашем производственном приложении не было таких инструкций о средствах проектирования:

#if !RELEASE
if (!DesignerProperties.IsInDesignTool)
#endif
HtmlPage.Window.Invoke("GetPrimaryGradStart");
...