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

前端之家收集整理的这篇文章主要介绍了在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#相关文章