Icône de réglage pour l'application wpf (VS 08)

125

Avant d'aller beaucoup plus loin, je mentionnerai que j'ai essayé des solutions en suivant:

Comment définir l'icône de mon application dans Visual Studio 2008?

Définir l'icône de l'application à partir des ressources dans VS 05

J'essaie de définir une icône pour mon application.

AFAIK, j'ai besoin potentiellement de 3 images?

  • 1 image est l'image réelle dans l'explorateur en cliquant sur le .exe (vignette pour l'exe)
  • 1 image (minuscule) dans le coin supérieur gauche (16 x 16? Pas tout à fait sûr)
  • 1 image dans le dock du menu Démarrer, à gauche de l'application (peut-être 32x32? Encore une fois pas sûr)

Alors c'est bien.

Maintenant, j'ai sélectionné une icône. Comment l'utiliser dans l'une des situations ci-dessus?

J'ai essayé de l'ajouter dans les ressources, rien ne semble se produire. Suite à cette première solution SO,

"Accédez d'abord à l'affichage des ressources (dans le menu: Affichage -> Autre fenêtre -> Affichage des ressources). Ensuite, dans l'affichage des ressources, parcourez les ressources, le cas échéant. S'il existe déjà une ressource de type Icône, ajoutée par Visual Studio, alors ouvrez-le et modifiez-le. Sinon, cliquez avec le bouton droit de la souris et sélectionnez Ajouter une ressource, puis ajoutez une nouvelle icône. "

La vue des ressources est vide et je ne peux pas cliquer avec le bouton droit dans cette vue.

Si je clique avec le bouton droit sur la solution> propriétés> ressources> je peux ajouter l'image de l'icône, mais elle n'apparaît dans aucun des emplacements énumérés ci-dessus. (ou partout où je peux voir)

1) Comment définir l'icône d'application pour une application WPF?

baron
la source
En fait, c'est Win 7 Talk; XP nous n'avons que deux je pense? le 16 x 16 et la grande vignette pour l'exe (pas sûr de la taille)
baron
Pour toute personne intéressée, j'ai défini une icône, l'image était de 64 x 64 et tout le reste (les plus petites tailles) a été créé automatiquement à partir de la mise à l'échelle de l'image originale que j'ai fournie.
baron
Consultez cette question sur SuperUser superuser.com/questions/142731/… pour obtenir facilement des icônes Windows intégrées dans votre application.
Chris Marisic
Cela a été utile: rw-designer.com/image-to-icon
Andrew

Réponses:

163

En supposant que vous utilisez VS Express et C #. L'icône est définie dans la page des propriétés du projet. Pour l'ouvrir, faites un clic droit sur le nom du projet dans l'explorateur de solutions. dans la page qui s'ouvre, il y a un onglet Application, dans cet onglet, vous pouvez définir l'icône.

742
la source
2
Merci pour votre réponse. Cheers
baron
61
Oui. Cela a fonctionné pour moi. Cependant, il semble que lors de l'exécution de l'application à partir du débogueur VS (c'est-à-dire en appuyant sur F5), l'icône «générique» est toujours affichée. Cependant, l'exécution sans le débogueur (c'est-à-dire ctrl + f5, ou à partir du bureau, etc.) affiche l'icône personnalisée, comme prévu.
Tom
7
En effet, lorsque le débogueur exécute votre code, il utilise la version vshost.exe de votre build (pour faciliter le débogage) qui utilise l'icône d'application par défaut et PAS l'icône définie dans l'onglet Applications, car elle est définie pour yourapplication.exe
VisualBean
95

La réponse de @ 742 fonctionne plutôt bien, mais comme indiqué dans les commentaires lors de l'exécution à partir du débogueur VS, l'icône générique est toujours affichée.

Si vous souhaitez avoir votre icône même lorsque vous appuyez sur F5, vous pouvez ajouter dans la fenêtre principale:

<Window x:Class="myClass"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Icon="./Resources/Icon/myIcon.png">

où vous indiquez le chemin d' accès à l' icône (l'icône peut être *.png, *.ico.)

(Notez que vous devrez toujours définir l'icône de l'application ou ce sera toujours la valeur par défaut dans l'Explorateur).

astreal
la source
8
La définition des deux est bonne car elle semble nécessaire pour que l'icône apparaisse à la fois dans la fenêtre et dans le fichier EXE.
Vimes
3
Assurez-vous simplement de définir l'icône sur une action de construction de "Ressource" comme l'a dit @AdamDylla: stackoverflow.com/a/39897641/1703887
csrowell
4

Remarque: (remplacez file.ico par le nom de fichier de votre icône)

  1. Ajoutez l'icône au projet avec l'action de génération de "Ressource".
  2. Dans les propriétés du projet, définissez l'icône de l'application sur file.ico
  3. Dans le jeu XAML de la fenêtre principale: Icon=".\file.ico"sur la fenêtre
Adam Dylla
la source
3

Après avoir obtenu une XamlParseException avec le message: 'Fournir une valeur sur' System.Windows.Baml2006.TypeConverterMarkupExtension ' avec les solutions données, la définition de l'icône a fonctionné par programme pour moi. Voici comment je l'ai fait:

  1. Placez l'icône dans un dossier < icon_path > dans le répertoire du projet
  2. Imiter le chemin du dossier < icon_path > dans la solution
  3. Ajoutez un nouvel élément (votre icône) dans le dossier de solution que vous avez créé
  4. Ajoutez le code suivant dans le code de la fenêtre WPF derrière:

Icon = new BitmapImage (new Uri ("< icon_path >", UriKind.Relative));

Veuillez m'informer si vous rencontrez des difficultés pour mettre en œuvre cette solution afin que je puisse vous aider.

Marvin Thobejane
la source
La solution simple pour ce message d'erreur consiste à définir l'icône sur une action de génération de "Ressource" comme l'a dit @AdamDylla: stackoverflow.com/a/39897641/1703887
csrowell
0

Vous pouvez également essayer ceci:

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);
    }
Nadeem Shaikh
la source