2012-11-05 2 views
0

Я пытаюсь создать ChildWindow в silverlight, чтобы пользователь мог ввести некоторые данные. Всякий раз, когда я вызываю функцию .Show(), событие .Closed срабатывает немедленно. Браузер (IE8), а затем выдает это сообщение снова и снова:Silverlight ChildWindow.Closed event срабатывает сразу после .Show()

Line: 56 
Error: Unhandled Error in Silverlight Application 
Code: 2272  
Category: ParserError  
Message: Cannot find a Resource with the Name/Key PhoneDisabledBrush  
File:  
Line: 43  
Position: 155  

Если я нажимаю это сообщение прочь около 15 раз, в конце концов, это дает мне ошибку переполнения стека в IE. Я никогда не вижу, чтобы ChildWindow отображался вообще до появления этого сообщения, однако он проходит через событие .Closed до возникновения этих ошибок.

Ребенок окна в настоящее время не имеет никакого кода в нем, добавили лишь несколько элементов управления основной Silverlight (TextBlock, Textboxes и т.д.)

childwindow конкретизируется так:

public TickerAdminControl() 
    { 
     InitializeComponent(); 
     winNewMsg = new windAddNewTickerMessage(); 
     winNewMsg.Closed += new EventHandler(winNewMsg_Closed); 
    } 

.Closed событий выглядит так:

void winNewMsg_Closed(object sender, EventArgs e) 
    { 
     if (winNewMsg.DialogResult == true) 
     { 
      TickerProxy.GetAllMessagesAsync(); 
     } 
    } 

Это действительно не могло быть более простым, поэтому я сбив с толку этой ошибкой. .Show() вызывается в простом событии нажатия кнопки на UserControl.

EDIT: Это происходит только в IE. Если я использую Chrome, он работает без изменения кода.

2nd EDIT: Это происходит, только когда я запускаю Debug из Visual Studio. Если я вытащу сайт вручную (Http: // localhost: 3881/Default.aspx), все работает нормально, поэтому он работал в Chrome. Он также работает в IE8, когда я обращаюсь к нему вручную. Кажется, я еще больше смущен.

3-е ИЗОБРАЖЕНИЕ: Несмотря на то, что все работает нормально при работе без отладки, ошибки сохраняются, но позволяют дочернему окну правильно отображаться. В левом нижнем углу я получаю сообщение «Ошибка», и если я нажимаю, он повторяет эту ошибку в 15 раз:

Message: Unhandled Error in Silverlight Application Error HRESULT E_FAIL has been returned from a call to a COM component. 
at MS.Internal.XcpImports.VisualStateManager_GoToState(Control reference, String StateName, Boolean useTransitions, Boolean& refreshInheritanceContext) 
at System.Windows.VisualStateManager.GoToState(Control control, String stateName, Boolean useTransitions) 
    at System.Windows.Controls.HyperlinkButton.ChangeVisualState(Boolean useTransitions) 
    at System.Windows.Controls.Primitives.ButtonBase.UpdateStateFlags(Boolean disable) 
    at System.Windows.Controls.Primitives.ButtonBase.OnIsEnabledChanged(IsEnabledChangedEventArgs e) 
    at System.Windows.Controls.Control.OnIsEnabledChanged(Control control, EventArgs args) 
    at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName, UInt32 flags) 
Line: 1 
Char: 1 
Code: 0 
URI: http://localhost:3881/default.aspx 

ответ

0

проблема решена. Оказывается, у меня был набор стилизованных кнопок гиперссылки в приложении, в котором вызывается ChildWindow, которые были настроены на поиск статического ресурса «PhoneDisabledBrush», которого не было. Это никогда не возникало, потому что я никогда не менял их на инвалидов. Кажется немного странным, что VS2010 не использовал бы исключение времени компиляции для этого, но я просто удалил код, и он работает плавно.

Смежные вопросы