使用C#在页面上打印图像
我有一个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'类型的第一个参数可以找到(你是否缺少使用指令或程序集引用?)
你必须调试。检查你的图像是否打算足够大。 ArgumentOutOfRangeException意味着你正在做的事情不在范围内,所以看看你的图像,图标和矩形的大小和比较。
还有一个提示:你应该考虑编写(int)(logoImage.Width * 0.75f)
这就是我所学到的,因为我有时会得到不可靠的值。
也许你可以告诉我们,哪一行是抛出错误!? – Bagerfahrer
在我的帖子上面的第一行。 –
你应该真的访问这个[页面](https://*.com/questions/15782857/displaying-an-icon-in-a-picturebox)像上面发布。 – Bagerfahrer
看一看这个类似的问题:
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);
我试了你提供的两个例子,仍然得到相同的错误:( –
您可能需要与我们分享您的KA0_icon以重现您收到的错误。 – LarsTech
@LarsTech - SO不会允许我上传带有.ico类型的文件。思考? –
[在图片框中显示图标]的可能重复(https://*.com/questions/15782857/displaying-an-icon-in-a-picturebox) – Bagerfahrer