0
如何將此GDI代碼轉換爲WPF代碼?以最佳質量縮小WPF中的位圖
Icon bigIcon32x32 = null;
bigIcon32x32 = Icon.ExtractAssociatedIcon("c:\\test.docx");
Bitmap bm = bigIcon32x32.ToBitmap();
Bitmap thumb16x16 = new Bitmap(16, 16);
Graphics graphics = Graphics.FromImage(thumb16x16);
graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
graphics.DrawImage(bm, new Rectangle(0, 0, 16, 16), new Rectangle(0, 0, bm.Width, bm.Height), GraphicsUnit.Pixel);
graphics.Dispose();
bm.Dispose();
thumb16x16.Dispose();
看來我必須使用ToBitmap()方法,但從此我只想使用WPF。
最後,我想通過綁定在WPF DataGrid的列中顯示小的16x16像素圖像。
@贊博尼我現在有更少的時間來檢查代碼,但我在下個週末嘗試。當然,如果它的好代碼,我會將它標記爲解決方案;-) – msfanboy 2011-03-14 11:49:49
@Zbonboni你會在哪裏創建字典,在那裏我緩存bitmapFrame?我正在使用MVVM,我不太確定我會使用Converter。 – msfanboy 2011-03-20 10:38:29
如果代碼的多個部分需要使用這些圖像,則需要將字典移至更全局/共享的位置以使其可訪問;否則,您應該將字典放在使用BitmapFrame的代碼附近。 如果要控制ViewModel中圖像的顯示,請將此示例中的代碼複製到ViewModel中,並將_bitmapFrame分配給ViewModel中的ImageSource類型屬性,並從視圖中將其綁定到它。 如果轉換器是唯一使用圖像的地方,我可能會保留在轉換器中。 – Zamboni 2011-03-20 15:34:43