Application.Actuel “null” dans l'application de la console
Je suis en train d'essayer d'utiliser un WPF composant qui permet d'utiliser l'Application.Courant à partir d'une application WPF, cependant, pour plusieurs raisons je n'ai jamais appel de l'Application.Exécuter (mais ce n'est pas une option). Le résultat est une exception NullReferenceException.
J'essaie d'afficher plusieurs instances de la même fenêtre WPF de ce que serait une application de console.
Tous les conseils (et les exemples de code en C#/F#) serait la bienvenue!
Merci d'avance
Si vous n'avez pas
Aaah, les joies de l'utilisation de contrôles WPF en dehors d'une application WPF.
J'essaie de montrer à WPF, windows à partir d'un multithread application console. Les cas de la même fenêtre montré à plusieurs reprises peuvent et vont se produire, trop, de sorte que la situation n'est pas trop facile! :/
Mais pourquoi n'êtes-vous pas appel
Vous avez besoin
Run()
une application, vous n'avez pas de Application
. Que faites-vous?Aaah, les joies de l'utilisation de contrôles WPF en dehors d'une application WPF.
J'essaie de montrer à WPF, windows à partir d'un multithread application console. Les cas de la même fenêtre montré à plusieurs reprises peuvent et vont se produire, trop, de sorte que la situation n'est pas trop facile! :/
Mais pourquoi n'êtes-vous pas appel
Run()
? Comment êtes-vous d'obtenir une boucle de message>Vous avez besoin
Run
. Créer une fenêtre masquée à votre fenêtre principale, puis vous pouvez fermer une fenêtre et de générer un autre sans mettre fin à l'application. Et maintenant, je peux voir que la réponse ci-dessous dit exactement cela. C'est la solution.OriginalL'auteur em70 | 2011-09-12
Vous devez vous connecter pour publier un commentaire.
Simplement pour offrir une solution de rechange.
Il est possible de conserver une application en cours d'exécution sans ouvrir les fenêtres. Pour moi, cela se sent moins "hackish'. 🙂 http://msdn.microsoft.com/en-us/library/system.windows.application.shutdownmode.aspx
EDIT:
Ok c'est un peu lourd. Application.Exécution du bloc, de sorte qu'il doit exécuter dans son propre thread.
Quand il fonctionne dans son propre thread, toute interaction entre votre sujet principal et votre thread de l'interface utilisateur ont tout intérêt à être fait par l'Application.Actuel.Répartiteur.Invoquer. Voici du code du travail, qui suppose que vous avez une classe qui hérite de l'Application. Je suis en utilisant une modification de l'Application.xaml/App.xaml.cs qu'un projet WPF modèle crée pour vous, pour obtenir de belles manipulation de ResourceDictionaries gratuitement.
Édité. Il a obtenu un peu plus compliqué que je le pensais...
Remerciements pour aller à longueur de fournir une réponse claire!
Ne savait jamais sur
ShutdownMode.OnExplicitShutdown
. Merci de poster -- beaucoup de gens qui construisent plateau applications WPF sont à la recherche de quelque chose comme ça.OriginalL'auteur Robert Jeppesen
Suivant est le comportement de la classe d'Application:
être retiré).
liste des fenêtres.
Cochez cette lien.
Donc, fondamentalement, vous ne pouvez pas exécuter une Application, sans aucune fenêtre ouverte. Ouvrez une fenêtre, mais caché.
Si j'ai mal compris votre problème, alors peut-être suivant les cas similaires qui pourraient vous aider:
La gestion des Ressources de l'Application lors de WPF est Hébergé.
Lors de l'exécution des tests unitaires dans Visual Studio 2008
Bien de le compilateur point de vue, votre programme sans une fenêtre a été méchant :p
OriginalL'auteur loxxy