J'ai une fenêtre avec un titre dessus. Lorsque l'utilisateur sélectionne un choix dans une liste déroulante, l'image du titre peut changer. Le problème est lorsque l'image se charge, elle est floue, étirée et pixélisée. Ce sont des fichiers PNG avec lesquels je travaille et ils ont l'air bien avant de définir la source dynamiquement.WPF Image Modification dynamique de la source d'image pendant l'exécution
Voici le code que j'utilise pour changer la source de l'image.
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);
Voici les fonctions d'aide.
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;
}
Et le XAML
<Image x:Name="imgTitle" HorizontalAlignment="Left" VerticalAlignment="Bottom" Grid.Column="1" Grid.Row="1" Stretch="None" d:IsLocked="False"/>
Et pour Réf:
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
Quelqu'un a des idées ce qui est?
merci pour le lien, très bon blog. – frameworkninja