none
Problema con al carga de imagen RRS feed

  • Pregunta

  • hola!

    Tengo un pequeño problema, os cuento: estoy intentando cargar una serie de imagenes en un formulario pero no lo consigo. En una primera prueba lo hoce de la siguiente manera:

    BitmapImage img = new BitmapImage(new Uri("./Images/238.JPEG", UriKind.RelativeOrAbsolute));
    
    image5.Source = img;
    

    pero nose porque motivo no me carga la imagen, quizas no pongo bien la URL de la imagen o tengo k recargar el formulario. Pues pensaba que quizas fuera porque debia de cargar el formulario y entonces cambie mi codigo he hice lo siguiente:

        public Surtidos()
        {
          InitializeComponent();
          this.Loaded += new RoutedEventHandler(Surtidos_Loaded);
          
          _tbCliente.Text += " " + ClientePortal.Nombre;
          this.DataContext = new CalcularPedidoSurtidoLin1();  <br/>
            }
    
        void Surtidos_Loaded(object sender, RoutedEventArgs e)
        {
          BitmapImage img = new BitmapImage(new Uri("./RepoWebBusiness/Images/238.JPEG", UriKind.RelativeOrAbsolute));
          img.DownloadProgress += new EventHandler<DownloadProgressEventArgs>(img_DownloadProgress);
          image5.Source = img;
        }
    
        void img_DownloadProgress(object sender, DownloadProgressEventArgs e)
        {
          if (e.Progress == 100)
          {
            _tbDescModeloLin3Cab.Text = "Cargado";
            image5.Visibility = System.Windows.Visibility.Visible;
          }
          else
          {
            _tbDescModeloLin3Cab.Text = e.Progress.ToString() + " %";
          }
        }
    

    pero esta opcion tampoco me carga la imagen y sin embargo el texto de "Cargado" si que aparece por lo que pienso que el problema estara en la Url de la imagen, lo tengo dentro de una carpeta (Images) dentro del proyecto.

    Alguien sabe porque me pasa esto?

     

    Gracias

     

     

     

     

    martes, 21 de septiembre de 2010 9:55

Respuestas

  • ¡Hola!

    Prueba esto:

    Dim nUri As New Uri("/NombreDelProyecto;component/CarpetaDeLaImagen/NombreDeLaImagen.png", UriKind.Relative)
    Dim objImageStream As Stream = Application.GetResourceStream(nUri).Stream
    Dim objBI As New BitmapImage
    objBI.SetSource(objImageStream)
    nImagen.Source = objBI
    
    Un saludo.
    • Marcado como respuesta ferny6 martes, 21 de septiembre de 2010 10:41
    martes, 21 de septiembre de 2010 10:29
  • oks!! acabo de resolverlo y gracias CorsarioVasco por es como tu dices, bueno yo he puesto algo parecido:

    BitmapImage img = new BitmapImage(new Uri("/RepowebBusiness;component/Images/305.jpg", UriKind.RelativeOrAbsolute));
    image5.Source = img;
    

    no me ha hecho falta el objeto Stream, que por cierto me podrias indicar en que libreria se encuentra? porque he visto una solucion en la red que lo hacen igual que tu pero no he podido saber donde esta Stream (System.IO) pero me falta algo mas porque no me sale.

    de todas formas muxas gracias por la rapidez.

     

    Un saludo

     

     

     

    • Marcado como respuesta ferny6 martes, 21 de septiembre de 2010 10:41
    martes, 21 de septiembre de 2010 10:40

Todas las respuestas

  • ¡Hola!

    Prueba esto:

    Dim nUri As New Uri("/NombreDelProyecto;component/CarpetaDeLaImagen/NombreDeLaImagen.png", UriKind.Relative)
    Dim objImageStream As Stream = Application.GetResourceStream(nUri).Stream
    Dim objBI As New BitmapImage
    objBI.SetSource(objImageStream)
    nImagen.Source = objBI
    
    Un saludo.
    • Marcado como respuesta ferny6 martes, 21 de septiembre de 2010 10:41
    martes, 21 de septiembre de 2010 10:29
  • oks!! acabo de resolverlo y gracias CorsarioVasco por es como tu dices, bueno yo he puesto algo parecido:

    BitmapImage img = new BitmapImage(new Uri("/RepowebBusiness;component/Images/305.jpg", UriKind.RelativeOrAbsolute));
    image5.Source = img;
    

    no me ha hecho falta el objeto Stream, que por cierto me podrias indicar en que libreria se encuentra? porque he visto una solucion en la red que lo hacen igual que tu pero no he podido saber donde esta Stream (System.IO) pero me falta algo mas porque no me sale.

    de todas formas muxas gracias por la rapidez.

     

    Un saludo

     

     

     

    • Marcado como respuesta ferny6 martes, 21 de septiembre de 2010 10:41
    martes, 21 de septiembre de 2010 10:40
  • y si lo que quiero es cambiar la imagen de un HyperlinkButton en programacion? por que lo que necesito es que las imagenes sean vinculos a una ventana de detalla y no se hacer que una imagen sea boton o si existe algun evento de click pues no lo conozco.

     

    Se que propiedad para el cambiar la imagen de un hyperlinkButton es Background:

    ImageBrush imgBrush2 = new ImageBrush();
    imgBrush2.ImageSource = new BitmapImage(new Uri("/RepoWebBusiness;component/Images/305.jpeg", UriKind.Relative));
    _hbImagenLin2Cab.Background = imgBrush2;
    
    pero no me cambia la imagen.

     

     

    martes, 21 de septiembre de 2010 10:52
  • ¡Hola!

    Me alegro que te haya servido.

    Imports System.IO
    Imports System.Windows.Media.Imaging
    

     

     

     

     

    Saludos.
    martes, 21 de septiembre de 2010 12:38
  • ¡Hola!

    En las imagenes no existe un click como tal a no ser que te lo crees, pero emplea el evento:

     

     

    Image_MouseLeftButtonDown

    Dentro del evento:

    HtmlPage.Window.Navigate(New Uri("http://eldoctorando.serveblog.net:8080/"), target:="_blank")

    Nunca he tenido que cambiar la imagen a un HyperlinkButton pero empezaría investigando si esto realmente se puede hacer:

    imgBrush2.ImageSource=new BitmapImage y luego ponerlo en un Background

    En principio es correcto: http://www.longhorncorner.com/UploadFile/dbeniwal321/SilverlightHyperlink12282008234241PM/SilverlightHyperlink.aspx

    Por cierto, sólo como consejo, la próxima vez abre otra pregunta para que si alguién hace una busqueda en el foro con la misma inquietud que tú se lo facilitemos.

    Un saludo,

     

     

    martes, 21 de septiembre de 2010 12:47
  • hola!! no esta nada mal pensado lo de utilizar el evento Image_MouseLeftButtonDown, pero al final lo he decido hacer con el evento

    Image_MouseEnter

     

    Por cierto la finalidad de cambiar la Imagen de un hyperlinkButton es porque seran leidos de base de datos, leere de la bd la url donde se encuentra la imagen (que estara en la carpeta "imagenes" en el servidor) y la cargare en la pagina, pudiendo cada vez que cargue la página existe una url diferente,. entonces kiero montarlo para cualquier url.

     

    Perdon por no haber hecho otra pregunta, ya lo se para la porxima xD

     

    Un saludo

    martes, 21 de septiembre de 2010 15:17