2012-04-10 10 views
0

Ich erstelle Designer, wo Benutzer Steuerelemente an die Oberfläche ziehen können. Einige Steuerelemente in der Symbolleiste können fehlerhafte Logik enthalten und Ausnahmen generieren. Wenn Benutzer zerbrochene Elemente an die Oberfläche zieht, habe ich eine Ausnahme behandelt.Wie UI-Ausnahmen in WPF unterdrücken?

Ich möchte diese UI Ausnahme und zeigen Nachricht wie Blend oder Visual Studio zu unterdrücken:

workArea.Dispatcher.UnhandledException += MainContainerDispatcherUnhandledException 

ich diese Ausnahme, wie dieser Cache kann:

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

     } 

Was sollte ich diese Meldung zu unterdrücken tun ? Entfernen Sie alle Steuerelemente von der Benutzeroberfläche und zeigt Label? oder ich kann einige Eigenschaften festlegen, damit WPF diese Ausnahmen ignoriert? Irgendwelche Kommentare dazu?

Danke.

Antwort

1

Sie können von AppDomain.UnhandledException und im Fall machen Sie empfangen es, identifizieren Sie die Kontrolle, die es möglich gemacht haben, und

  • oder zeigen dem Benutzer eine benutzerfreundliche Nachricht
  • oder eine rote Oberfläche zeigen (mehr oder weniger wie VS tut)
  • oder eine Adorner verwenden mit animaniton (kühl, aber mehr zu Programm)

Hoffnung, das hilft.

+0

Aber wenn Kontrolle bereits eine Ausnahme haben. Wie kann ich es auf der Oberfläche lassen? Vielleicht werden Ausnahmen wieder erhöht? Wie kann ich die Ausnahme für ein Steuerelement unterdrücken und den Adorner mit einer roten Nachricht anzeigen? – Evgeny

+1

@Evgeny: Ich meine, zeichne nicht eine * Kontrolle *, sondern eine Oberfläche. Versuchen Sie, ein Steuerelement in VS-Designer zum Absturz zu bringen: Sie sehen ein weißes Rechteck mit einem roten Kreuz an der Stelle, an der das Steuerelement * sein soll *. – Tigran

+0

Ich verstehe die Idee. Aber das Problem, dass Dispatcher.UnhandledException und AppDomain.UnhandledException keine Eigenschaft enthält, um festzustellen, welches Steuerelement eine Ausnahme verursacht hat. Oder ich kann es nicht finden. – Evgeny

Verwandte Themen