Tengo una ventana con un título. Cuando el usuario selecciona una opción de una lista desplegable, la imagen del título puede cambiar. El problema es cuando la imagen se carga, está borrosa, estirada y pixelada. Estos son archivos PNG con los que estoy trabajando y se ven bien antes de configurar la fuente de forma dinámica.WPF Imagen que cambia dinámicamente Origen de la imagen durante el tiempo de ejecución
Aquí está el código que estoy usando para cambiar la fuente de la imagen.
string strUri2 = String.Format(@"pack://application:,,,/MyAssembly;component/resources/main titles/{0}", CurrenSelection.TitleImage);
Stream iconStream2 = App.GetResourceStream(new Uri(strUri2)).Stream;
imgTitle.Source = HelperFunctions.returnImage(iconStream2);
Aquí están las funciones de ayuda.
public static BitmapImage returnImage(Stream iconStream)
{
Bitmap brush = new Bitmap(iconStream);
System.Drawing.Image img = brush.GetThumbnailImage(brush.Height, brush.Width, null, System.IntPtr.Zero);
var imgbrush = new BitmapImage();
imgbrush.BeginInit();
imgbrush.StreamSource = ConvertImageToMemoryStream(img);
imgbrush.CreateOptions = BitmapCreateOptions.PreservePixelFormat;
imgbrush.EndInit();
var ib = new ImageBrush(imgbrush);
return imgbrush;
}
public static MemoryStream ConvertImageToMemoryStream(System.Drawing.Image img)
{
var ms = new MemoryStream();
img.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
return ms;
}
Y el XAML
<Image x:Name="imgTitle" HorizontalAlignment="Left" VerticalAlignment="Bottom" Grid.Column="1" Grid.Row="1" Stretch="None" d:IsLocked="False"/>
Y para Ref:
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
Alguien tiene alguna idea ¿Qué pasa?
gracias por el enlace, muy buena publicación en el blog. – frameworkninja