在WPF应用程序的Windows任务栏中显示错误大小的图标

时间:2014-05-21 05:57:12

标签: c# wpf windows windows-8 icons

我有一个简单的WPF应用程序。我有一个漂亮的多分辨率图标,大小从256x256到16x16。所有常见的东西。

我的应用程序在Windows资源管理器中看起来很棒,即使在超大视图下,该图标看起来也很棒。图标很好地缩放,我看到适当分辨率的相应图标。

但是,48x48始终用于固定任务栏或固定开始菜单,看起来很糟糕。

我在通常的地方找不到任何相关的东西,但我的直觉说有人必须知道一些东西,我只是遗漏了一些明显的东西。

2 个答案:

答案 0 :(得分:2)

只要.ico文件中包含48x48像素的版本,任务栏图标就会变得模糊。而不是选择正确大小的32x32像素版本,出于某种原因,Windows显然会选择48x48并扩展它。

我的解决方案是使用两个单独的图标文件:

  • 一个.ico包含24x24和32x32版本的图标,当使用XAML或Hannish的方法中的Icon属性设置为Window的图标时,将用于标题栏和任务栏分别为 - 没有不必要的缩放。
  • 第二个图标文件,包含 - 取决于哪些来源正确 - 一系列尺寸介于16x16和256x256像素之间。将此项目设置为项目属性中的应用程序图标将使图标在所有其他位置(如桌面和文件资源管理器)上在不同的视图设置上看起来很好。

在Windows 10上进行测试,这似乎涵盖了以下显示案例:任务栏,窗口标题栏,Alt-TAB菜单,桌面和文件浏览器。

答案 1 :(得分:1)

任务栏中显示的图标大小由多种因素决定; ' MinWidth'值HKEY_CURRENT_USER |控制面板|桌面| WindowMetrics,DPI设置和任务栏设置。

选择48x48是因为默认的' MinWidth'设置是(我相信)53,而48x48是图标中最大的分辨率,适合该设置。

如果您对48x48图标的外观不满意,可能只需要重新设计。确保使用正确数量的颜色等。小图标看起来如何?比48x48差还是差?如果是这样,那么也许这个图标太复杂了,看不出这么小的分辨率。

我知道无法强制窗口为任务栏选择不同的图标大小。