0

ユーザーがデータを入力できるように、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 コントロール (テキストブロック、テキストボックスなど) が追加されているだけです。

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 の単純なボタン クリック イベントで呼び出されます。

編集: これは IE でのみ発生します。Chrome を使用すると、コードを変更せずに動作します。

2番目の編集:これは、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
4

1 に答える 1

0

問題が解決しました。存在しない静的リソース「PhoneDisabledBrush」を探すように設定された ChildWindow を呼び出すアプリに、スタイル設定されたハイパーリンク ボタンのセットがあったことがわかりました。私はそれらを無効に変更したことがないので、これは前に思いつきませんでした。VS2010 がコンパイル時の例外を通過しないのは少し奇妙に思えますが、コードを削除しただけでスムーズに動作します。

于 2012-11-05T19:51:14.940 に答える