104 votes

Ne pouvez pas trouver l'espace de noms System.Windows.Media ?

Je suis en train d'utiliser un objet d'une API tierce qui a une propriété de type System.Windows.Media.ImageSource, mais je n'arrive pas à trouver l'espace de noms System.Windows.Media nulle part. Si j'essaie d'ajouter une référence à mon projet, je ne vois pas System.Windows.Media dans la liste des options. Mon projet cible également .Net 3.5.

Est-ce qu'il y a quelque chose d'autre que je dois faire pour pouvoir accéder à cet espace de noms?

3 votes

Juste un petit indice pour quiconque le recherche sur Google comme je l'ai fait il y a quelques jours: Vos projets dans votre solution peuvent avoir des cibles de framework différentes, donc si vous ne trouvez pas de référence, vérifiez toujours dans quel projet se trouve réellement le fichier que vous regardez et si ce projet cible toujours une ancienne version de .NET.

105voto

MegaMilivoje Points 206

Vous devriez ajouter une référence à PresentationCore.dll.

6 votes

Comment se souvenir des références ou résoudre ce genre de problème lorsque vous n'avez pas accès à Internet?

22 votes

J'ai voté négativement pour cette réponse, car pour les débutants (comme moi), je n'ai aucune idée de l'endroit où ce fichier pourrait se trouver.

3 votes

Meilleure réponse jusqu'à présent. De plus, je ne savais pas qu'il y avait une barre de recherche en haut de la fenêtre des références, je passais mon temps à défiler pour trouver des éléments à ajouter dans les références. Merci de l'avoir souligné!

68voto

VOX Points 1084

La namespace System.Windows.Media.Imaging fait partie de PresentationCore.dll (si vous utilisez Visual Studio 2008, le modèle d'application WPF ajoutera automatiquement cette référence). Notez que ce namespace n'est pas un enrobage direct de la bibliothèque WIC, bien qu'une grande proportion des utilisations les plus courantes soient toujours disponibles et il est relativement évident comment celles-ci se rapportent aux versions WIC. Pour plus d'informations sur les classes de ce namespace, consultez

http://msdn2.microsoft.com/fr-fr/library/system.windows.media.imaging.aspx

7 votes

Si ce lien venait à disparaître ou si la page était redirigée, cette réponse deviendrait inutile. La prochaine fois, veuillez avoir une vraie réponse dans votre réponse, comme celle de @MegaMilivoje.

7 votes

Comment trouver quel DLL nous avons besoin dans ces cas? Le lien ne mentionne aucun DLL ni même le mot "présentation". Votre réponse fonctionne, mais il n'est pas clair comment nous pourrions jamais résoudre cela sans demander de l'aide.

2 votes

@leetNightshade Salut de 2023! Tu avais raison. Le lien est mort et la réponse est inutile :P

41voto

Mehmedov Points 61

Ajoutez PresentationCore.dll à vos références. L'URL de ce dll sur mon PC - C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\PresentationCore.dll

22voto

Owlbuster Points 73

Vous pouvez ajouter PresentationCore.dll de manière plus pratique en modifiant le fichier du projet. Ajoutez le code suivant dans votre fichier csproj :

Dans l'explorateur de solutions, vous devriez maintenant voir ce framework répertorié. Avec cela, vous pourrez également faire référence aux classes fournies par PresentationCore.dll.

0 votes

Voici une bonne solution. Je travaille avec Asp.net Blazor et en ajoutant ceci au fichier csproj, cela fonctionne.

0 votes

Cette solution a fonctionné lorsque j'ai créé un projet .NET 6 dans VSCode.

19voto

MikeyB Points 793

Pour Visual Studio 2017

Trouvez "Références" dans l'explorateur de solutions

Cliquez avec le bouton droit sur "Références"

Choisissez "Ajouter une référence..."

Trouvez la liste "Presentation.Core" et cochez la case à cocher

Cliquez sur OK

1 votes

Ensuite, j'ai dû ajouter WindowsBase.dll depuis le même répertoire.

0 votes

Est-ce qu'il existe un package NuGet pour cela ?

0 votes

Ce sera sous "Assemblages" au fait.

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