我正在使用WPF JumpTask对象,我希望我的Windows 7跳转列表图标是来自我的应用程序的图标 - 但不是默认图标。是另一个不同的图标。
那么我该怎么做呢?我猜我需要指定一个不同的图标资源索引。
但是我该如何将我的图标存储为资源,并且如何知道哪个图标是哪个索引?
IconResourcePath
属性设置为带有您的图标的DLL。如果您有几个图标,请使用IconResourceIndex
属性来指定所需的图标。<Application x:Class="YourApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<JumpList.JumpList>
<JumpList>
<JumpTask Title="TargetApp"
Description="JumpTask to start TargetApp"
ApplicationPath="TargetApp.exe"
IconResourcePath="LibWithIcons.dll"
IconResourceIndex="2" />
</JumpList>
</JumpList.JumpList>
</Application>
将创建一个JumpList并将其设置为JumpTask项TargetApp第三个图标(从LibWithIcons.dll开始,以零为基础的编号)。顺便说一句,如果JumpTask启动另一个应用程序,通常会将IconResourcePath
设置为该应用程序的可执行文件,因此它的图标将被显示:
<JumpTask Title="TargetApp"
Description="JumpTask to start TargetApp"
ApplicationPath="TargetApp.exe"
IconResourcePath="TargetApp.exe"
IconResourceIndex="0" />
如何创建在MSDN论坛上描述的图标DLL。
它正在寻找Win32资源中的图标,这与托管资源非常不同。查看这篇优秀的文章以了解它们 - 可以创建它们并指定图标顺序。
最终我使用了Einar Eigilson创建的优秀工具,它允许您在后期构建事件中将图标添加为资源。
值得注意的是,无论我做了什么,即使嵌入静态win32资源,我也无法在调试模式下显示任何除主要图标之外的图标。在像我一样拔光头发之前,请尝试在发布模式下进行测试。
Icon = Imaging.CreateBitmapSourceFromHIcon(KillXDes.Properties.Resources.KillProcIcon.Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
虽然这不是一个重要问题,但他们搞砸了。 - 15ee8f99-57ff-4f92-890c-b56153