2017-08-28 71 views
0

我有一個256x256 .ico,我想通過C#語法進行打印。這是我的語法使用C#在頁面上打印圖像

Image logoImage = global::Winform1.Properties.Resources.KA0_icon.ToBitmap(); 
Rectangle LogoRect = new Rectangle(m_leftMargin, m_leftMargin, (int)(logoImage.Width * 0.75), (int)(logoImage.Height * 0.8)); 
e.Graphics.DrawImage(logoImage, LogoRect); 
e.Graphics.DrawRectangle(Pens.LightBlue, LogoRect); 

但是,這將引發的錯誤:

類型「System.ArgumentOutOfRangeException」的異常出現在mscorlib.dll但在用戶代碼
其他信息沒有處理:請求的範圍延伸到陣列的末尾

必須執行哪些操作才能在我正在打印的頁面頂部顯示.ico文件?

編輯
%的建議,下面我也試過這個語法

Image logoImage = Bitmap.FromHicon(global::Winform1.Properties.Resources.KA0_icon, new Size(48, 48).Handle); 

但是這給了我

大小的錯誤」不包含定義‘拉手’並且沒有擴展方法'Handle'接受'Size'類型的第一個參數可以找到(你是否缺少使用指令或程序集引用?)

+0

您可能需要與我們分享您的KA0_icon以重現您收到的錯誤。 – LarsTech

+0

@LarsTech - SO不會允許我上傳帶有.ico類型的文件。思考? –

+0

[在圖片框中顯示圖標]的可能重複(https://stackoverflow.com/questions/15782857/displaying-an-icon-in-a-picturebox) – Bagerfahrer

回答

0

你必須調試。檢查你的圖像是否打算足夠大。 ArgumentOutOfRangeException意味着你正在做的事情不在範圍內,所以看看你的圖像,圖標和矩形的大小和比較。

還有一個提示:你應該考慮編寫(int)(logoImage.Width * 0.75f)這就是我所學到的,因爲我有時會得到不可靠的值。

+0

也許你可以告訴我們,哪一行是拋出錯誤!? – Bagerfahrer

+0

在我的帖子上面的第一行。 –

+0

你應該真的訪問這個[頁面](https://stackoverflow.com/questions/15782857/displaying-an-icon-in-a-picturebox)像上面發佈。 – Bagerfahrer

0

看一看這個類似的問題:

Displaying an icon in a picturebox

它提到了同樣的異常。做轉換,你可能有成功做這樣的事情:

Bitmap.FromHicon(global::Winform1.Properties.Resources.KA0_icon.Handle); 

或者可能:

Bitmap.FromHicon(new Icon(global::Winform1.Properties.Resources.KA0_icon, new Size(256, 256)).Handle); 
+0

我試了你提供的兩個例子,仍然得到相同的錯誤:( –