web-dev-qa-db-fra.com

WPF - Image 'ne fait pas partie du projet ou son action de construction n'est pas définie sur Ressource'

J'ai un projet qui nécessite une image dans la fenêtre. Ceci est une image statique et j'ai ajouté via "Ajouter> Élément existant". Il existe dans la racine du projet.

Je référence l'image dans une page de test comme suit - 

<Page x:Class="Critter.Pages.Test"
      xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
      Title="Test">
      <Image Source="bug.png"/>
</Page>

Le problème est que je reçois un message disant que l’information est introuvable ou que son action de construction n’est pas une ressource mais qu’elle existe et qu’elle est une ressource d’action de construction IS. Si je crée une nouvelle application et la jette simplement sur une fenêtre, cela fonctionne correctement.

Toute aide est la bienvenue.

30
Stimul8d

Essayez de reconstruire complètement ou supprimez les fichiers de construction, puis construisez le fichier.

Visual Studio ne prend pas toujours en compte les modifications apportées aux ressources et il peut être difficile de le recompiler.

Essayez également d’utiliser un URI complet car cela m’a aidé lorsque j’avais le même problème. Quelque chose comme

pack://application:,,,/MyAssembly;component/bug.png
31
Cameron MacFarland

-> Cliquez avec le bouton droit de la souris sur le fichier image --> Cliquez sur la propriété --> Sélectionnez une action de construction pour la ressource --> Solution de nettoyage et de construction --> Exécuter la solution obtiendra le tout

Prendre plaisir

17
sona jha

J'ai eu le même problème. Nettoyer et reconstruire la solution n'a pas résolu le problème. J'ai donc redémarré Visual Studio et c'est tout. Espérons que Visual 2010 corrige ce problème, ainsi que les nombreux autres problèmes générés par wpf dans Visual 2008.

15
brianstewey

Essayez de démarrer le chemin vers votre image avec un "/":

<Image Source="/bug.png"/>
13
Ben Gribaudo

Il y a une solution à votre question

<Image Source="/WpfApplication4;component/images/sky.jpg" />

"composant" n'est pas un dossier!

3
towrywang

Ce n'est pas le cas, ou du moins la version bêta actuelle ne le fait pas. J'ai trouvé cette page en cherchant exactement le même problème. Reconstruire/nettoyer n'a rien fait. Après la fermeture et le rechargement de la solution, le fichier est redevenu compatible comme par magie.

2
user188079

Exemple de chargement asynchrone, une autre option. Exemple clip.mp4 se trouve à la racine du projet Web.

void Landing_Loaded(object sender, RoutedEventArgs e)
{
    //Load video async

    Uri pageUri = HtmlPage.Document.DocumentUri;
    Uri videoUri = new UriBuilder(pageUri.Scheme, pageUri.Host, pageUri.Port, "clip.mp4").Uri;           

    WebClient webClient = new WebClient();
    webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
    webClient.OpenReadAsync(videoUri);
}

void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
    byte[] VideoBuffer = new byte[e.Result.Length];
    e.Result.Read(VideoBuffer, 0, (int)e.Result.Length);
    MemoryStream videoStream = new MemoryStream(VideoBuffer);
    ContentVideo.SetSource(videoStream);
    ContentVideo.Stop();
    ContentVideo.Play();
}
1
pigleg

J'ai eu exactement le même problème, mais le redémarrage de VS2008 ou le nettoyage et la reconstruction du projet n'ont pas fonctionné. En fin de compte, les étapes ci-dessous ont fait l'affaire.

  • Dans l'Explorateur Windows, copiez l'image dans le dossier de ressources de votre projet. Exemple: MonProjet\Ressources \
  • Dans Visual Studio, cliquez avec le bouton droit de la souris sur Ressources et sélectionnez "Ajouter> Élément existant", puis sélectionnez l'image que vous venez de copier.
  • Dans le formulaire XAML, définissez la source de l'image sur: "Source="Resources/MyImage.ico" (mon image a été enregistrée sous forme de fichier icône (.ico), mais cette approche devrait fonctionner pour tout type d'image

J'espère que cela aide quelqu'un

1
P_Fitz

J'avais un problème similaire. Après avoir supprimé un fichier someStyle.xaml que je n'utilisais pas vraiment dans l'explorateur de solutions. Puis j'ai restauré le fichier, mais aucun changement n'est intervenu. Le nettoyage et la reconstruction du projet n’ont pas aidé. 

Supprimez simplement la ligne correspondante: 

<ResourceDictionary Source="someStyle.xaml"/> 

a fait le tour.

0
JnuO

J'ai eu le même message d'erreur mais mes problèmes étaient une simple erreur NOOB.

Quand j’ai ajouté mes fichiers .ico à "Mon projet/Ressources", VS a créé un sous-dossier nommé Ressources que j’essayais d’utiliser.

<Window Icon="icons1.ico">

quand j'aurais dû utiliser;

<Window Icon="Resources/icons1.ico">

... ne juge pas, j'ai commencé à utiliser WPF il y a une semaine :)

0
T4roy