2017-08-28 68 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

我试了你提供的两个例子,仍然得到相同的错误:( –