Icône WPF pour toutes les fenêtres d'applications

Il est possible de définir une icône de sorte qu'elle soit utilisée sur toutes les fenêtres de l'application actuelle. Ainsi que je l'ai mis une fois (pas sur chaque fenêtre à la main)..?

52
demandé sur Dave Clemmer 2009-12-10 18:06:03

5 réponses

Une bonne référence sur le sujet est ici MSDN. Indique que vous avez une icône pour l'Application (icône du bureau) et une pour chaque fenêtre.

Une fenêtre WPF affiche toujours une icône. Lorsqu'une icône n'est pas fournie par setting Icon, WPF choisit une icône à afficher en fonction des règles suivantes:

  1. Utilisez l'icône d'assemblage, si spécifié.

  2. Si l'icône d'assemblage n'est pas spécifiée, utilisez L'icône Microsoft Windows par défaut.

Communauté Référence Du Contenu:

" une astuce liitle: si vous définissez l'icône de l'application et attendez - vous à la voir sur la fenêtre-elle ne s'affichera pas si elle s'exécute dans debug à partir de VS. S'exécutant en externe ou sans attacher (ctrl + f5) l'icône s'affiche comme prévu."

93
répondu jsmith 2009-12-10 15:40:28

Définissez l'icône dans les propriétés du projet sur L'onglet" Application "dans la section" Ressources". Cette icône sera l'icône par défaut pour toutes les fenêtres de l'application.

15
répondu John Myczek 2009-12-10 15:17:23

Sous VS2010, ouvrez les propriétés de l'exécutable principal de l'application et ouvrez L'onglet Application. Définissez l'icône sous "icône et manifeste" dans la section Ressources.

Voir l'icône pendant le débogage sous VS2010 vous devez ouvrir l'onglet Débogage et décochez l'option "Activer le processus d'hébergement Visual Studio", sinon vous ne verrez l'icône par défaut sur la plupart des fenêtres.

Je suppose que le code de chargement de l'icône est confus par le processus d'hébergement et regarde "someapplication.vshost.exe "au lieu de" someapplication.exe" pour les icônes.

Cela semble être corrigé dans VS2013.

2
répondu DaveCleland 2014-02-07 19:12:17

, Vous pouvez également essayer de définir votre propre icône:

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
répondu Nadeem Shaikh 2015-08-19 10:39:14

La raison pour laquelle "activer le processus D'hébergement Visual Studio" fait que l'icône ne fonctionne pas est qu'elle est démarrée en utilisant le vshost.exe, et donc le manifeste n'est pas lu correctement. La même chose vaut si vous avez d'autres choses dans le manifeste, comme regfree OCX controls etc qui nécessite le manifeste à charger.

1
répondu Frosty 2015-03-16 12:42:56