我使用一些自定義控制其中之一是一個工具提示控制器,可以顯示圖像,所以我使用第ebelow代碼以實例化它:.NET設置的圖像顯示尺寸
Image newImage = Image.FromFile(imagePath);
e.ToolTipImage = newImage;
顯然可以內聯,但現在只是測試。麻煩的是,圖像有時是錯誤的大小,有沒有辦法設置顯示大小。我目前看到的唯一方法是使用GDI +或類似的東西編輯圖像。當我只想調整顯示大小而不影響實際圖像時,看起來像很多額外的處理。
我使用一些自定義控制其中之一是一個工具提示控制器,可以顯示圖像,所以我使用第ebelow代碼以實例化它:.NET設置的圖像顯示尺寸
Image newImage = Image.FromFile(imagePath);
e.ToolTipImage = newImage;
顯然可以內聯,但現在只是測試。麻煩的是,圖像有時是錯誤的大小,有沒有辦法設置顯示大小。我目前看到的唯一方法是使用GDI +或類似的東西編輯圖像。當我只想調整顯示大小而不影響實際圖像時,看起來像很多額外的處理。
從源文件加載圖像對象後,高度和寬度(以及大小和所有輔助屬性)都是隻讀的。因此,您堅持使用GDI +方法在RAM中調整其大小,然後相應地顯示它。
你可以採取很多方法,但是如果你想把它封裝到一個庫中,如果這個問題再次發生,你可以重新使用這個庫,你將被設置去。這是不完全優化(即,可能有一些錯誤),但應該給你如何對待它的想法:
Image newImage = Image.FromFile(myFilePath);
Size outputSize = new Size(200, 200);
Bitmap backgroundBitmap = new Bitmap(outputSize.Width, outputSize.Height);
using (Bitmap tempBitmap = new Bitmap(newImage))
{
using (Graphics g = Graphics.FromImage(backgroundBitmap))
{
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
// Get the set of points that determine our rectangle for resizing.
Point[] corners = {
new Point(0, 0),
new Point(backgroundBitmap.Width, 0),
new Point(0, backgroundBitmap.Height)
};
g.DrawImage(tempBitmap, corners);
}
}
this.BackgroundImage = backgroundBitmap;
我做了測試,和它的工作。 (它創造了我的桌面壁紙之一的200×200大小的版本,然後設置爲在臨時WinForms項目主要形式的背景圖像。你需要爲System.Drawing
using
報表和System.Drawing.Drawing2D
。
在的WinForms,如果你在PictureBox控件中包含圖像,PictureBox控件可以設置爲放大到特定的高度/寬度,並且圖像應該符合
至少這就是我做Head First C#書時發生的事情
謝謝我的想法是顯示器的大小與實際的圖像分辨率是分開的......所以它應該可以單獨修改而不需要真正的編輯圖像,但可能不是。 – PeteT 2008-11-10 16:24:33
不幸的是,沒有...希望(修改後的版本)這可以幫你。 :) – 2008-11-10 16:54:39