【发布时间】:2011-10-05 21:28:29
【问题描述】:
在我正在处理的应用程序中,有图像(System.Windows.Media.Imaging 的一部分)在 XAML 页面的代码隐藏中动态创建并添加到窗口中。我正在使用 ICO 文件,其中包含各种大小和位深度。我想要的尺寸是 96x96 @ 32 位。代码自动选择最大尺寸(256x256 @ 32 位)。
我将Image.Source 属性设置如下:
image.Source = new BitmapImage(new Uri("pack://application:,,,/Resources/Images/Application.ico"));
现在,通过四处搜索,我找到了图标(System.Drawing 的一部分),它允许我设置字符串路径和大小,但这是一个完全不同的库的一部分。
new Icon("pack://application:,,,/Resources/Images/Inquiry.ico",96,96);
知道如何使 Image 的 size 属性更易于管理吗?谢谢!
编辑:
Convert System.Drawing.Icon to System.Media.ImageSource
这篇文章使图像看起来更小,但是,我将图标设置为 96x96 还是 128x128 都没有关系,它实际上并没有改变显示图像的大小。我假设它的默认值与System.Windows.Media.Imaging 默认值不同。
编辑到编辑:怪异越来越怪异。当我通过原始方法显示时,它肯定将图像显示为 256x256。但是,当我使用链接中描述的转换方法时,虽然尺寸发生了变化,但它们显着缩小(即 256x256 看起来更接近 48x48)。
【问题讨论】:
-
不确定,如果我有问题,如果您想为图像设置固定大小,为什么不使用 Image.Height 和 Image.Width?否则还有很多关于调整大小的教程,例如rongchaua.net/blog/c-wpf-fast-image-resize
-
ICO 太痛苦了。看起来微软不再认为它们是一流的对象了……无论如何,system.drawing.icon.tobitmap 可以用来调整图标的大小。您可以在 BitmapImage.BeginInit - EndInit 块中使用 BitmapImage.DecodePixelWidth 属性吗?
-
我阅读了另一篇文章,其中的解决方案是创建特定大小的 ICO,但我现在找不到。您是否将其用作应用程序的图标?
-
Blam:我在程序中使用它作为图标。一种伪平板式界面。对于实际系统使用的任何尺寸,它似乎都是一触即发的,然后重新调整自己的尺寸。只是最终咬紧牙关,改为制作矢量。