如何更改应用于窗口中图标的缩放算法?

时间:2015-05-08 18:17:27

标签: wpf xaml

如果大图像的尺寸小于原始图像,则开始显示“pixelation”工件:

https://habrastorage.org/files/8a6/198/506/8a61985069cb4d0097540bf0d07f4a68.png

但这可以通过在XAML中指定对象的属性,更高质量的缩放算法来解决:

<Image Height="50" Width="50" 
     Source="Resources/logo.png" 
     RenderOptions.BitmapScalingMode="HighQuality" /><!-- Scaling Mode -->

然后,图像看起来很好:

https://habrastorage.org/files/819/863/48f/81986348f9ab454a9d6b676d88321d0a.png

问题。如何更改应用于窗口中图标的缩放算法?通过XAML设置的图标(最后一行):

<Window x:Class="MyApp.AboutWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/present"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:res="clr-namespace:MyApp.Properties"
Title="{x:Static res:Resources.AboutWindowTitle}" 
Height="450" Width="300" 
ResizeMode="NoResize" 
WindowStartupLocation="CenterOwner"
Icon="Resources/info.png"><!-- Icon -->

标题栏中的图标如下所示:

_https://habrastorage.org/files/946/bb7/67b/946bb767b66042aba985a8e55a21b078.png(对不起,我没有足够的声誉发布第三个链接)

属性RenderOptions.BitmapScalingMode =“HighQuality”应用于窗口,不提供任何内容。

1 个答案:

答案 0 :(得分:0)

与客户区中的元素不同,标题栏中的元素不受WPF应用程序的直接控制。设置为Window的Icon属性的png文件将转换为标题栏中的图标图像(以及任务栏中的图标)但如您所见,转换似乎非常有限。

据我所知,遗憾的是,在标题栏中设置精美图标的唯一实用解决方案是创建或找到一个图标文件(.ico),里面有多个图像并使用它而不仅仅是一个png文件