jeder,Wie öffne ich WPF-Fenster im selben pragrom/Anwendung?
Ich möchte eine Anwendung, die Fenster zu öffnen und zu schließen Multi-Zeit steuern konnte. Drücken Sie beispielsweise 1, öffnen Sie ein Fenster; drücke 2, schließe das Fenster.
Und da ist mein Code den ich gefunden habe, der das nur einmal machen konnte.
Kann jemand nett sein, mir zu helfen, es zu korrigieren? Danke vielmals.
public static void Main(string[] args)
{
var appthread = new Thread(new ThreadStart(() =>
{
app = new testWpf.App();
app.ShutdownMode = ShutdownMode.OnExplicitShutdown;
app.Run();
}));
appthread.SetApartmentState(ApartmentState.STA);
appthread.Start();
while (true)
{
var key = Console.ReadKey().Key;
// press 1 to open
if (key == ConsoleKey.D1)
{
DispatchToApp(() => new Window().Show());
}
// Press 2 to exit
if (key == ConsoleKey.D2)
{
DispatchToApp(() => app.Shutdown());
}
}
}
static void DispatchToApp(Action action)
{
app.Dispatcher.Invoke(action);
}
dank viel, aber ich habe eine weitere Ausnahme: Der aufrufende Thread dieses Objekt nicht zugreifen, da ein anderer Thread sie besitzt . – cindywmiao
oh mein Schlechter, ich habe meine Antwort bearbeitet. Bitte prüfen Sie, ob das hilft. – Tobi
Ich habe einen anderen Fehler über die neue Funktion als Sie hinzufügen, zwischen Invoke und: Die nicht-generische Methode 'System.Windows.Threading.Dispatcher.Invoke (System.Delegate, System.TimeSpan, System.Windows.Threading.DispatcherPriority, params object []) 'kann nicht mit Typ Argumenten verwendet werden –
cindywmiao