visual tutorial studio presentacion metodos ejemplos c# wpf

c# - tutorial - wpf vs windows forms



Usar el control de imagen en WPF para mostrar System.Drawing.Bitmap (4)

De acuerdo con http://khason.net/blog/how-to-use-systemdrawingbitmap-hbitmap-in-wpf/

[DllImport("gdi32")] static extern int DeleteObject(IntPtr o); public static BitmapSource loadBitmap(System.Drawing.Bitmap source) { IntPtr ip = source.GetHbitmap(); BitmapSource bs = null; try { bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(ip, IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()); } finally { DeleteObject(ip); } return bs; }

Obtiene System.Drawing.Bitmap (de Windowsbased) y lo convierte en BitmapSource, que en realidad se puede utilizar como fuente de imagen para su control de imagen en WPF.

image1.Source = YourUtilClass.loadBitmap(SomeBitmap);

¿Cómo asigno un objeto Bitmap en memoria a un control de Image en WPF?


Es fácil para el archivo de disco, pero más difícil para Bitmap en la memoria.

System.Drawing.Bitmap bmp; Image image; ... MemoryStream ms = new MemoryStream(); bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png); ms.Position = 0; BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.StreamSource = ms; bi.EndInit(); image.Source = bi;

Robado aquí


Escribí un programa con wpf y usé Database para mostrar imágenes y este es mi código:

SqlConnection con = new SqlConnection(@"Data Source=HITMAN-PC/MYSQL; Initial Catalog=Payam; Integrated Security=True"); SqlDataAdapter da = new SqlDataAdapter("select * from news", con); DataTable dt = new DataTable(); da.Fill(dt); string adress = dt.Rows[i]["ImgLink"].ToString(); ImageSource imgsr = new BitmapImage(new Uri(adress)); PnlImg.Source = imgsr;


Puede usar la propiedad Fuente de la imagen. Prueba este código ...

ImageSource imageSource = new BitmapImage(new Uri("C://FileName.gif")); image1.Source = imageSource;