我正在尝试在silverlight中创建一个ChildWindow,供用户输入一些数据。每当我调用.Show()
函数时,.Closed
事件立即触发。浏览器(IE8)然后一遍又一遍地抛出此消息:
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控件(文本块,文本框等)
子窗口实例化如下:
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();
}
}
它真的不能更基本,所以我对这个错误感到困惑。在UserControl上的简单按钮单击事件中调用.Show()
。
编辑:这只发生在IE上。如果我使用Chrome,则无需更改任何代码即可运行。
第二次编辑:这似乎只发生在我从Visual Studio运行Debug时。如果我手动上拉站点(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 :(得分:0)
问题解决了。事实证明我在应用程序上有一组样式化的超链接按钮,调用ChildWindow,设置为寻找不存在的静态资源“PhoneDisabledBrush”。这从未出现过,因为我从未将它们更改为禁用。似乎有点奇怪VS2010不会因此而没有通过编译时异常,但我刚刚删除了代码并且它运行顺畅。