2012-04-10 7 views
0

私は、ユーザーがコントロールをサーフェイスにドラッグできるデザイナーを作成しています。 ツールバーのいくつかのコントロールには、ロジックの破損や例外の発生が含まれる場合があります。 破損したアイテムをサーフェスにドラッグすると、処理されない例外が発生します。私はこのようなこの例外をキャッシュすることができwpfのUI例外を抑制する方法は?

workArea.Dispatcher.UnhandledException += MainContainerDispatcherUnhandledException 

は私がブレンドまたはVisual StudioのようなこのUIの例外とショーのメッセージを抑制したい私は、このメッセージを抑制するために何をすべき

protected void MainContainerDispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) 
     { 

     } 

? UIからすべてのコントロールを削除し、ラベルを表示しますか?またはWPFがこの例外を無視するようにいくつかのプロパティを設定できますか?これに関するコメント?

ありがとうございました。

答えて

1

あなたはAppDomain.UnhandledExceptionを利用し、場合にあなたがそれを受け取る、それが実現させたコントロールを識別することができ、かつ

  • またはユーザーにユーザーフレンドリーメッセージ
  • を表示したり、いくつかの赤の表面を示し、 (多かれ少なかれVSが行うように)
  • または

(クールが、プログラムにより)animanitonでAdornerを使用希望、このことができます。

+0

しかし、コントロールには既に例外があります。どうすればいいの?たぶん例外が再び起きるだろうか?どのように私は1つのコントロールの例外を抑制し、赤いメッセージでアドヴァーナーを表示できますか? – Evgeny

+1

@Evgeny:コントロール*を描画するのではなく、サーフェスを描くことを意味します。 VSデザイナーでいくつかのコントロールがクラッシュするようにしてください:コントロール*があると思われる場所に赤い十字が表示された白い矩形が表示されます。 – Tigran

+0

私は考えている。しかし、Dispatcher.UnhandledExceptionとAppDomain.UnhandledExceptionには例外が発生したコントロールを特定するプロパティが含まれていないという問題があります。少なくとも私はそれを見つけることができません。 – Evgeny

関連する問題