Frage WPF-Symbol für alle App-Fenster


Es ist möglich, ein Icon so zu setzen, dass es in jedem Fenster der aktuellen App verwendet wird. So dass ich es einmal eingestellt habe (nicht an jedem Fenster von Hand) ..?


52
2017-12-10 15:06


Ursprung


Antworten:


Eine gute Referenz zu diesem Thema ist hier MSDN. Gibt an, dass Sie ein Symbol für die Anwendung (Desktop-Symbol) und ein Symbol für jedes Fenster haben.

Ein WPF-Fenster zeigt immer ein Symbol an. Wenn dies nicht durch Festlegen von Symbol erreicht wird, wählt WPF ein Symbol aus, das basierend auf den folgenden Regeln angezeigt wird:

  1. Verwenden Sie das Assembly-Symbol, falls angegeben.

  2. Wenn das Assembly-Symbol nicht angegeben ist, verwenden Sie das Standard-Microsoft Windows-Symbol.

Community-Inhaltsreferenz:

"Ein kleiner Tipp: Wenn Sie das Anwendungssymbol setzen und erwarten, es auf dem Fenster zu sehen - es wird nicht angezeigt, wenn in Debug von VS ausgeführt wird. Ausführen von extern oder ohne Anfügen (Strg + F5) wird das Symbol wie erwartet angezeigt."


93
2017-12-10 15:12



Legen Sie das Symbol in den Projekteigenschaften auf der Registerkarte "Anwendung" im Bereich "Ressourcen" fest. Dieses Symbol ist das Standardsymbol für alle Fenster in der Anwendung.


15
2017-12-10 15:17



Öffnen Sie unter VS2010 die Eigenschaften für die ausführbare Hauptanwendung und öffnen Sie die Registerkarte Anwendung. Setze das Icon unter 'Icon and Manifest' im Bereich Resources.

Um das Symbol während des Debuggens unter VS2010 zu sehen, müssen Sie die Debug-Registerkarte öffnen und die Option für 'Den Visual Studio-Hosting-Prozess aktivieren' deaktivieren, sonst wird nur das Standard-Icon in den meisten Fenstern angezeigt.

Ich nehme an, dass der Icon-Ladecode durch den Hosting-Prozess verwirrt wird und in "someapplication.vshost.exe" statt "someapplication.exe" nach den Icons sucht.

Das sieht so aus, als wäre es in VS2013 behoben.


2
2018-02-07 19:12



Sie können dies auch versuchen, um Ihr eigenes Symbol zu setzen:

private void Page_Loaded_1(object sender, RoutedEventArgs e)
        {
            Uri iconUri = new Uri(@"C:\Apps\R&D\WPFNavigation\WPFNavigation\Images\airport.ico", UriKind.RelativeOrAbsolute);
            (this.Parent as Window).Icon = BitmapFrame.Create(iconUri);
        }

2
2017-08-19 10:39



Der Grund, dass "Visual Studio-Hosting-Prozess aktivieren" bewirkt, dass das Symbol nicht funktioniert, ist, dass es mit vshost.exe gestartet wird und dadurch das Manifest nicht richtig gelesen wird. Dasselbe gilt, wenn Sie im Manifest andere Elemente wie Regfree ocx controls usw. haben, für die das Manifest geladen werden muss.


1
2018-03-16 12:42