在WPF / C#中调整和使用ICO文件

在我正在处理的应用程序中,有一个 Image(System. Windows.Media.Imaging的一部分)被动态地在XAML页面代码中创建并被添加到窗口中.我使用的ICO文件,其中包含各种尺寸和位深度.我想要的尺寸是96×96 @ 32位.该代码自动选择的最大尺寸(256×256 @ 32位).

我设置Image.source属性如下:

image.source = new BitmapImage(new Uri("pack://application:,/Resources/Images/Application.ico"));

现在,通过搜索,我发现了Icon(System.Drawing的一部分),这将允许我设置一个字符串路径和大小,但这是完全不同的库的一部分.

new Icon("pack://application:,/Resources/Images/Inquiry.ico",96,96);

任何想法,我怎样才能使我的图像的大小属性有点更易于管理?谢谢!

编辑:
Convert System.Drawing.Icon to System.Media.ImageSource
这个帖子使图像看起来更小,但是,如果将图标设置为96×96或128×128,则实际上并不会更改显示的图像大小.我假设它将会有一些与System.Windows.Media.Imaging认值不同的认值.

编辑编辑:奇怪的是越来越多.当我通过原来的方法显示,它肯定显示图像为256×256.然而,当我使用链接中描述的转换方法时,当尺寸发生变化时,它们会显着缩小(即256×256看起来更接近于48×48).

解决方法

您可以尝试使用以下代码,它应该适用于ICO文件
Image displayImage = new Image();
// Create the source
BitmapImage sourceImage = new BitmapImage();
sourceImage.BeginInit();
sourceImage.UriSource = new Uri("pack://application:,/Resources/Images/Application.ico");
sourceImage.EndInit();
// Set the source
displayImage.source = sourceImage;
// Set the size you want
displayImage.Width = 96;
displayImage.Stretch = Stretch.Uniform;

相关文章

C#项目进行IIS部署过程中报错及其一般解决方案_c#iis执行语句...
微信扫码登录PC端网站应用的案例(C#)_c# 微信扫码登录
原文地址:http://msdn.microsoft.com/en-us/magazine/cc163...
前言 随着近些年微服务的流行,有越来越多的开发者和团队所采...
最近因为比较忙,好久没有写博客了,这篇主要给大家分享一下...
在多核CPU在今天和不久的将来,计算机将拥有更多的内核,Mic...