2011-03-19 29 views
4

我正在使用WPF JumpTask對象,並且希望我的Windows 7跳轉列表圖標是我自己的應用程序中的圖標 - 但不是默認的圖標。一個不同的。WPF JumpTask比默認的另一個圖標?

那麼我該如何做到這一點?我想我指定了一個不同的圖標資源索引。

但是,我怎樣才能將我的圖標作爲資源存儲,我怎麼知道哪個圖標是哪個索引?

回答

2

根據MSDN

與JumpTask使用必須 可作爲原生資源的圖標。

您只能從單獨的資源文件加載圖標。所以,你需要將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> 

將從LibWithIcons.dll創建的JumpList和設置爲JumpTask項TargetApp第三圖標(基於空記數)。順便說一句,如果JumpTask啓動其他應用程序通常IconResourcePath被設置到該應用程序的可執行文件,所以它的圖標會顯示:

<JumpTask Title="TargetApp" 
    Description="JumpTask to start TargetApp" 
    ApplicationPath="TargetApp.exe" 
    IconResourcePath="TargetApp.exe" 
    IconResourceIndex="0" /> 

如何創建MSDN forums描述圖標DLL。

+1

您如何知道哪個圖標位於哪個索引?你的回答並沒有說清楚。 – imoatama 2012-10-07 18:50:16

+1

你如何添加圖標和/或知道它是什麼索引?答案不明確,鏈接也不明確。它說如何添加圖標,但它們都不會出現在我嘗試從0到50的任何索引中。 – user99999991 2015-09-17 20:01:53

1

它正在尋找Win32資源中的圖標,這與託管資源完全不同。看看這個優秀的寫作來理解這些 - 可以創建它們並指定圖標順序。

Embed Icons into WPF Application as Resource

最後我用了埃納爾Eigilson,讓您的圖標添加爲在生成後事件的資源創造了great tool

還值得注意的是,無論我在做什麼,我都無法在調試模式下運行時顯示圖標。即使嵌入一個靜態的win32資源也沒有顯示主圖標之外的任何圖標。在你像我一樣拉你的頭髮之前,嘗試在Release中測試。

+0

您可以在調試器中運行時顯示主窗口圖標,方法是將其直接分配給主窗口的Icon屬性,如InitializeComponent()之後的窗口構造函數。以下工作,雖然它讓你錯誤的圖標大小。 'Icon = Imaging.CreateBitmapSourceFromHIcon(KillXDes.Properties.Resources.KillProcIcon.Handle,Int32Rect.Empty,BitmapSizeOptions.FromEmptyOptions());'不是一個重要的問題,但他們把它搞砸了。 – 2015-12-22 16:53:27