2016-07-01 14 views
-1

Ich entwickle eine WPF-Anwendung ohne Window.Show() oder Window.ShowDialog() zu verwenden, es ist einfach ein MainWindow und lädt zu angegebenen UserControls Platzhalter.Gibt es sowieso um UI Thread wie Window.ShowDialog() zu blockieren WPF

Aber das Problem ist, wenn App zeigt ein Steuerelement in Platzhalter, es blockiert Thread nicht wie Window.ShowDialog(), ich meine, wenn ein Benutzer Steuerelement in MainWindow eingebettet ist, kann es zurück zum Hauptbildschirm wie schließen dies:

FooB() wird nur aufgerufen, nachdem Foo Control geschlossen wurde.

FooA() wird nur aufgerufen, nachdem Foo Control geschlossen wurde und DialogResult = false hat.

Was kann ich tun, um Window.ShowDialog für meinen Fall zu simulieren.

Danke.

+0

Sie möchten alles außer Ihrer aktuellen Benutzersteuerung blockieren? Befindet sich diese Benutzersteuerung in einem anderen Fenster? – Master117

+0

Ich habe wirklich ein paar Probleme zu verstehen, was Sie tun, so von was ich verstanden habe, haben Sie ein Fenster, wo Sie einige Steuerelemente zeigen, nehme ich an Benutzeraktion und Sie wollen, dass wenn ein Steuerelement ich den Rest des Fensters angezeigt wurde eingefroren, was Verwenden Sie die IsEnabled-Eigenschaft der Steuerelemente mit einem geeigneten Ansichtsmodell, sodass die IsEnabled-Eigenschaft auf false festgelegt wird, wenn das Steuerelement in den übrigen Steuerelementen des Fensters angezeigt wird? –

+0

hi @ Master117 yup, das, was ich will: andere außer dem aktuellen UserControl blockieren, die MainWindow aufrufen. Danke –

Antwort

0

Ok verstanden, der beste Weg, um zu erhalten, was Sie wollen, ist, was ich in meiner ersten Antwort gesagt habe. Um Ihnen besser zu erklären, was es bedeutet, habe ich eine kleine WPF-Anwendung als Beispiel gemacht. Meine Anwendung verfügt über ein Hauptfenster und drei verschiedene Benutzersteuerelemente mit jeweils einer Funktionalität und einer Schaltfläche zum Schließen. Im Hauptfenster habe ich drei Schaltflächen platziert, die die Steuerelemente im Fenster erstellen und anzeigen und eine boolesche Eigenschaft im Fenster festlegen, die ein beliebiges anderes Steuerelement sperrt, wenn ein Benutzersteuerelement angezeigt wird und alle Steuerelemente nach dem Schließen des Benutzersteuerelements aktiviert. Sie können das Beispiel über den folgenden Link herunterladen http://blogs.dotnetwork.it/sabrina/download/SampleCode/DisableControls.zip