WPF - La imagen 'no es parte del proyecto o su Acción de compilación no está configurada como Recurso'

StackOverflow https://stackoverflow.com/questions/638845

Pregunta

Tengo un proyecto que requiere una imagen en la ventana. Esta es una imagen estática y agregué a través de 'Agregar > Elemento existente'. Existe en la raíz del proyecto.

Hago referencia a la imagen en una página de prueba así -

<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>

El problema es que recibo un mensaje que dice que no se puede encontrar o que su acción de compilación no es un recurso, pero sí existe y su acción de compilación ES un recurso. Si creo una nueva aplicación y la lanzo a una ventana, entonces funciona bien.

Cualquier ayuda sería genial.

¿Fue útil?

Solución

Intente realizar una reconstrucción completa o elimine los archivos de compilación y luego compile el archivo.

Visual Studio no siempre recoge los cambios en los recursos, y puede ser una molestia hacer que se vuelva a compilar.

También intente usar un URI completo, ya que me ayudó cuando tuve el mismo problema. Algo como

pack://application:,,,/MyAssembly;component/bug.png

Otros consejos

? Haga clic derecho en el archivo de imagen ? Haga clic en propiedad ? Seleccione Crear acción para recurso ? Solución de limpieza y construcción ? Ejecute la solución

Obtendrás todo.

Tuve el mismo problema. Limpiar y reconstruir la solución no lo solucionó, así que reinicié Visual Studio y lo hizo. Esperamos que Visual 2010 solucione este problema y los muchos otros que afectan a wpf en Visual 2008.

Intente iniciar el camino hacia su imagen con un " / " ;:

<Image Source="/bug.png"/>

Hay una solución a su pregunta

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

" componente " no es una carpeta!

No lo hace, o al menos la versión beta actual no. Encontré esta página mientras buscaba exactamente el mismo problema. Reconstruir / limpiar no hizo nada. Después de cerrar y volver a cargar la solución, el archivo se volvió mágicamente compatible nuevamente.

Ejemplo de carga asíncrona, otra opción. Ejemplo clip.mp4 está en la raíz del proyecto 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();
}

Me enfrenté exactamente al mismo problema, pero reiniciar VS2008 o limpiar y reconstruir el proyecto no funcionó para mí. Al final, los pasos a continuación hicieron el truco.

  • En el Explorador de Windows, copie la imagen en la carpeta de recursos del proyecto. Ejemplo: MyProject \ Resources \
  • Desde Visual Studio, haga clic con el botón derecho en Recursos y seleccione " Agregar > Artículo existente " y seleccione la imagen que acaba de copiar
  • Desde el formulario XAML establezca la fuente de la imagen como: " Source = " Resources / MyImage.ico " (mi imagen se guardó como archivo de icono (.ico), pero este enfoque debería trabajar para cualquier tipo de imagen

Espero que esto ayude a alguien

Tuve un problema similar. Después de eliminar un archivo someStyle.xaml que realmente no estaba usando del explorador de soluciones. Luego restauré el archivo, pero no ocurrió ningún cambio. Limpiar y reconstruir el proyecto no ayudó.

Simplemente eliminando la fila correspondiente:

<ResourceDictionary Source="someStyle.xaml"/> 

hizo el truco.

Recibí el mismo mensaje de error pero mis problemas fueron un simple error de NOOB.

Cuando agregué mis archivos .ico a "Mi proyecto / Recursos", VS creó una subcarpeta llamada Recursos y estaba tratando de usar;

<Window Icon="icons1.ico">

cuando debería haber estado usando;

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

... no juzgues, empecé a usar WPF hace 1 semana :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top