在我正在处理的应用程序中,有一个
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;