选择 System.Drawing.Icon 的大小?
我有一个有几种不同尺寸(16px、32px、64px)的图标。我在其上调用 ToBitmap()
,但它始终返回 32px 图像。我如何检索 64px 的?
I have a icon which has a few different sizes (16px, 32px, 64px). I am calling ToBitmap()
on it, but it is always returning the 32px image. How do I retrieve the 64px one?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
这有帮助吗?
Does this help?
对于其他遇到同样问题的人,我找到了一个很好的小解决方案。
For anyone else stumbling upon the same problem, I've found a nice little solution.
这是 ResourceManager 类中一个相当痛苦的限制。它的 GetObject() 方法不提供传递额外参数的方法,从而允许按大小选择返回的图标。解决方法是将图标添加到项目中。使用“项目”+“添加现有项目”,选择您的 .ico 文件。选择添加的图标并将“构建操作”属性更改为“嵌入资源”。
现在,您可以使用如下代码检索所需的图标:
示例用法:
注意一种可能的失败模式:此代码假定图标已添加到包含该方法的同一程序集中。
This is a fairly painful limitation in the ResourceManager class. Its GetObject() method doesn't provide a way to pass extra arguments that would allow selecting the returned icon by size. A workaround is to add the icon to the project instead. Use Project + Add Existing Item, select your .ico file. Select the added icon and change the Build Action property to "Embedded Resource".
You can now retrieve the desired icon with code like this:
Sample usage:
Beware one possible failure mode: this code assumes that the icon was added to the same assembly that contains the method.
下面设置工具栏中所有按钮的图标大小。
它依赖于存储在按钮标签中的资源名称。
The following sets the icon size for all the buttons in the toolbar.
It relies on the resource name being stored in the button tag.
大小是在您第一次创建
Icon
实例时确定的,因此您需要在创建它时指定要使用的大小,使用Icon
构造函数,采用Size
范围。The size is determined when you first create the
Icon
instance, so you need to specify which size you want to use when you create it, using one of theIcon
constructors that take aSize
parameter..Net 框架中没有内置方法可以执行此操作。
相反,您可以使用此库。
There is no built-in method in the .Net framework that does this.
Instead, you can use this library.