38 votes

Définir un MenuItem.Icon en code en WPF

J'ai un dossier d'images avec un fichier png dedans. Je voudrais définir l'icône d'un MenuItem avec ce png. Comment écrire cela en code procédural ?

63voto

Timothy Fries Points 1091
menutItem.Icon = new System.Windows.Controls.Image
       {
           Source = new BitmapImage(new Uri("images/sample.png", UriKind.Relative))
       };

0 votes

Cela nous a énormément aidés. Nous avons d'abord dû créer une Image, puis attribuer la source de cette Image au BitMapImage, puis définir menuItem.Icon = objet Image, mais cela a fonctionné.

3 votes

J'ai modifié la réponse pour que les nouveaux visiteurs de cette question obtiennent le code fonctionnel au cas où ils manqueraient ce fil de commentaire.

23voto

Arcturus Points 14366

Assurez-vous simplement que votre image est également incluse dans le fichier du projet et est marquée comme ressource, et vous êtes prêt à partir :)

3 votes

La question originale était pour du code procédural. De plus, je crois qu'en XAML, vous pourriez écrire à l'intérieur de

1 votes

+1 pour montrer la bonne manière...la manière XAML... de le faire. @Neil, +1 pour toi et j'ai édité selon ta suggestion, car c'est la façon correcte de le faire.

4 votes

Simplement parce que c'est fait en XAML ne signifie pas nécessairement que c'est la bonne façon de le faire.

17voto

IanR Points 2046

La réponse d'Arcturus est bonne car cela signifie que vous avez le fichier image dans votre projet plutôt que dans un dossier indépendant.

Donc, dans le code cela devient...

menutItem.Icon = new Image
        {
        Source = new BitmapImage(new Uri("pack://application:,,,/votre_assemblée;composant/votrechemin/Image.png"))
        }

3voto

Basti Endres Points 1

C'est un peu plus court :D

1voto

Gary95054 Points 313

C'est ce qui a fonctionné pour moi

                Resources/Images/delete.png

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X