有没有办法强制WPF窗口将图标缩小到具有更好的缩放算法的大小,或强制它为我的图标使用更好的分辨率?
我制作了一个图标(ICO格式)文件,其中包含一个256x256,32位PNG图像。我在项目的属性中将项目的图标设置为此图标。当我运行应用程序时,它在Windows托盘中看起来很棒。
问题是当我将图标设置为有问题的窗口时。会发生什么......它没有正确地缩小我的图像,我在我的窗口的左上角处得到了这个丑陋的图像,并且有一些不好的抗锯齿。它根本不光滑。我该怎么办?
答案 0 :(得分:3)
你有两个问题之一:WPF缩小图标(锯齿/歪斜),或图标渲染效果不佳(模糊)
要解决第一个问题,我不会依赖WPF来缩小图标。使用GIMP或Photoshop以16,32,64,128和256维度创建图标,并将它们保存在单独的文件夹中:
Icons
16
MyIcon.png
AnotherIcon.png
32
MyIcon.png
AnotherIcon.png
etc.
大多数图标库有多种尺寸(IconExperience,Syncfuction等)。如果您创建自定义图标,则应自行缩小尺寸以完全控制。
您可以创建自定义控件,以帮助您找到正确的图标。因此,您可以在一个常见位置定义要使用的大小图标:
<CustomIcon Name="MyIcon.png" Location="Ribbon"/>
其中Name是文件名,Location是自定义的枚举,允许您根据UI中的位置预定义大小。 CustomIcon可以从Image继承,并根据这两个属性在内部设置Source。
如果您认为遇到第二个问题,请尝试在MainWindow上设置UseLayoutRouding =“True”,并尝试使用RenderOptions.BitmapScalingMode(WPF4及以后版本)。