[英]WPF JumpList Icon not populating
我在我的 WPF 應用程序中設置了一個 JumpList。
除了不顯示圖標外,JumpList 功能齊全,這是我在任務欄中看到的:
這是我必須創建 JumpTask 的代碼:
using System.Windows.Shell;
public JumpTask BuildJumpTask
{
get
{
return new JumpTask
{
Arguments = Argument,
ApplicationPath = Assembly.GetEntryAssembly()?.Location,
Description = GenerateDescription(),
IconResourcePath = GetIconPath(),
Title = Name
};
}
}
Private string GetIconPath()
{
return Type switch
{
JumpListItemType.About => Path.GetFullPath(@"Assets\Icons\JumpList\About.ico"),
JumpListItemType.Help => Path.GetFullPath(@"Assets\Icons\JumpList\Help.ico"),
JumpListItemType.Quit => Path.GetFullPath(@"Assets\Icons\JumpList\Quit.ico"),
JumpListItemType.Settings => Path.GetFullPath(@"Assets\Icons\JumpList\Settings.ico"),
JumpListItemType.Sign_Out => Path.GetFullPath(@"Assets\Icons\JumpList\Sign_Out.ico"),
_ => null!
};
}
All.ico 文件正在 output 到預期目錄,
我正在為它們的文件使用以下屬性:
構建操作:嵌入式資源(我也嘗試過內容)
復制到 Output 目錄:如果較新則復制
JumpTask.IconResourcePath
的文檔指出(強調我的):
https://learn.microsoft.com/en-us/do.net/api/system.windows.shell.jumptask.iconresourcepath
包含圖標的資源的路徑。 默認值為
null
。
[...] 與JumpTask
一起使用的圖標必須作為本地資源提供。
因此,您不能為 JumpList 圖標指定 PNG 文件的路徑——這是有道理的,因為 Win32 圖標支持多種尺寸(例如高 DPI、大圖標等)而不是單個圖像——您不能使用 PNG 文件來做到這一點。
幸運的是,您不需要啟動 VisualC++ 來構建一個包含少量圖標的.dll
文件:此 QA 有關於如何將多個.ico
文件添加為本機ICON
/ ICONDIRECTORY
資源的說明: 添加多個圖標(Win32-Resource ) 到 .NET-Application - 請注意,C# 編譯器-win32icon
選項僅允許您指定單個圖標(作為.exe
文件的應用程序圖標),使其無法用於此目的。
不要忘記確保包含 16x16、24x24 和 32x32 的合適圖標插圖,以確保您的跳轉列表項目在非 96dpi 顯示器上看起來可以接受。
另請注意,Win32本機資源是與 .NET .resources
/ .resx
完全不同的概念 - 並且也與 WPF/XAML <ResourceDictionary>
對象分開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.