Entwickler-Ecke
WPF / Silverlight - WPF SingleInstance bring to front?
Christoph1972 - Fr 08.03.13 23:27
Titel: WPF SingleInstance bring to front?
Hallo Leute,
meine aktuelles Projekt darf nur ein mal gestartet werden, als Vorlage habe ich mir diesen Artikel rausgesucht:
Klick [
http://www.codeproject.com/Articles/84270/WPF-Single-Instance-Application]
Das funktioniert soweit. Ich habe nur keine Idee, wie das Fenster in den Fordergrund bekommen. Das Fenster "läuft" im Systemtray, also Visibility.Hidden, ShowInTaskbar = false. Ich habe es so versucht:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| public partial class App : Application, ISingleInstanceApp { static App application = new App();
private const string Unique = "My_Unique_Application_String"; [STAThread] public static void Main() { if (SingleInstance<App>.InitializeAsFirstInstance(Unique)) {
application.InitializeComponent(); application.Run(); SingleInstance<App>.Cleanup(); } } public bool SignalExternalCommandLineArgs(IList<string> args) { application.MainWindow.Visibility = Visibility.Visible; application.MainWindow.Activate(); application.MainWindow.BringIntoView(); return true; } }
Funktioniert nur leider nicht :-)
Hat hier jemand einer Idee wie ich das Fenster in den Fordergrund bringen kann? |
Christoph1972 - Mi 13.03.13 17:39
Hallo zusammen!
Die C# Lösung funktioniert scheinbar nicht mehr mit dem FW 4.0. Ich hatte mich auch über codeproject.com direkt an den Autor gewendet, leider ohne Erfolg.
Ich habe mir jetzt mit dieser Methode geholfen:
Click [
http://www.dreamincode.net/forums/topic/179732-wpf-c%23-limiting-an-application-to-a-single-instance/]
Ist zwar nicht so schön, aber sie funktioniert so weit. Eine Besonderheit habe ich jedoch festgestellt. Wenn ein anderes Fenster der Application geöffnet ist, wird nicht das Main-Window geöffnet, sondern das Child-Window, warum auch immer!?
Ich lasse das Thema mal offen, wenn es etwas neues geben sollte, werde ich (oder ihr) es hier niederschreiben!
jcs - Mo 15.04.13 22:09
Hi
Ich habe mich jetzt auch aus gegebenem Anlass mit diesem Problem und dem gleichen Code aus dem CodeProject beschäftigt.
Du schreibst, es funktioniert unter FW 4 nicht mehr:
War dein Fehler auch der, dass die using directive
using System.Runtime.Remoting.Channels.Ipc
nicht erkannt wurde?
Wenn das der Fall ist, kannst du den Fehler so beheben :
Rechtsklick auf Verweise->Verweis hinzufügen->System.Runtime.Remoting
Danach funktioniert der Code , das ursprüngliche Fenster kommt auch wieder sauber in den Vordergrund.
Gruß
Johannes
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!