【问题标题】:Tray icon looks fine but WPF Window icon looks horrible托盘图标看起来不错,但 WPF 窗口图标看起来很糟糕
【发布时间】:2014-08-25 22:21:17
【问题描述】:

有什么方法可以强制 WPF 窗口将图标缩小到具有更好的缩放算法的大小,或者强制它为我的图标使用更好的分辨率?

我制作了一个图标(ICO 格式)文件,其中包含 256x256、32 位、PNG 图像。我在项目的属性中将项目的图标设置为这个。当我运行应用程序时,它在 Windows 托盘中看起来很棒。

问题是当我将图标设置为有问题的窗口时。发生的事情是......它没有正确缩小我的图像,我在窗口的左上角看到这个丑陋的图像,上面有一些不好的抗锯齿。它一点也不光滑。我能做什么?

【问题讨论】:

  • 您是否尝试过更小的尺寸或不同的格式?在我目前正在进行的项目中,.ico 格式是 32x32 8 位 BMP。它在两个地方看起来都很好,尽管它是一个相当简单的图形。
  • 嗯...我可以试一试,但我担心它在 32x32 时不能正确混叠,因为它有漂亮的形状,比如圆圈等,需要一些花哨的光栅化。
  • @AndrewStephens 看起来 64x64 对于托盘和窗口图标看起来要好得多。我希望我可以让 GIMP 导出多个分辨率,然后让 WPF 选择在哪里使用哪个分辨率,但我认为我没有那么奢侈。我应该注意:我使用的是 PNG 图像而不是 ICO 格式...

标签: c# wpf window icons


【解决方案1】:

您遇到以下两个问题之一:WPF 缩小图标的比例不佳(锯齿状/倾斜),或图标渲染不佳(模糊)

为了解决第一个问题,我不会依赖 WPF 来缩小图标。使用 GIMP 或 Photoshop 创建 16、32、64、128 和 256 尺寸的图标,并将它们保存在单独的文件夹中:

Icons
  16
    MyIcon.png
    AnotherIcon.png
  32
    MyIcon.png
    AnotherIcon.png
etc.

大多数图标库都有多种尺寸(IconExperience、Syncfction 等)。如果您创建自定义图标,则应自行缩小比例以获得完全控制权。

您可以创建自定义控件来帮助您找到正确的图标。所以你可以在一个共同的地方定义你想在哪里使用哪个尺寸的图标:

<CustomIcon Name="MyIcon.png" Location="Ribbon"/>

其中 Name 是文件名,Location 是一个自定义枚举,允许您根据它们在 UI 中的位置预定义大小。 CustomIcon 可以继承自 Image,并根据这两个属性在内部设置 Source。

如果您认为遇到了第二个问题,请尝试在 MainWindow 上设置 UseLayoutRouding="True",并尝试使用 RenderOptions.BitmapScalingMode(WPF4 及更高版本)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多