
我在做什么
My.Resources:我在 My.Resources 中有很多我想在“預覽按鈕”上顯示的圖示(即代碼片段中的 Button10)。因此,我將資源字串(參見螢屏截圖)作為文本添加到我的 ListView(即 Column1 = 程式名稱;Column2 = 路徑;Column3 = My.Resources)以及它們各自的程式,這是同步影像所必需的。我試圖實作這一點的原因是對于沒有檔案路徑的程式可以從中提取程式圖示,即使用應用程式用戶模型 ID (AUMID) 的 WIN10 MS 應用程式和 MS Store 應用程式。除非有人知道如何從系統中訪問/提取 WIN10 MS 應用程式和 MS 商店應用程式圖示?
問題:我試圖找到一種方法將資源從ListView 列中的資源字串“轉換”為位圖,以用作預覽按鈕上的影像(即SelectedIndexChanged)。我不確定鑄造是否是正確的方法?
我已經嘗試過:我設法得到的最接近的是以下引發例外的代碼(即 System.ArgumentException:'Parameter is not valid.')?傳遞的文本似乎是正確的。

Dim resourceName = ListView4.SelectedItems(0).SubItems(2).Text.ToString
Dim icon = DirectCast(My.Resources.ResourceManager.GetObject(resourceName), Icon)
Dim bmp = icon.ToBitmap()
Button10.BackgroundImage = bmp
Button10.BackgroundImageLayout = ImageLayout.Stretch
相關問題
我如何以編程方式獲取圖示 for-win10-ms-store-apps
資源(URL)
啟動-windows-10-store-apps
查找應用程式用戶模型 id-of-an-installed-app
uj5u.com熱心網友回復:
您ListView似乎包含您希望在運行時執行的代碼片段。這不是它的作業原理。您不能只執行 a string,就好像它是已編譯的代碼一樣。My.Resources如果你想根據它的名字來獲取資源,string那么你可以這樣做:
Dim resourceObject = DirectCast(My.Resources.ResourceManager.GetObject(resourceName), ResourceType)
在您的情況下,您需要存盤實際名稱,例如“Bridge_0”和“Photoshop_1000”,并使用這些值。您需要轉換為型別Icon,然后呼叫ToBitmap自己,例如
Dim resourceName = ListView4.SelectedItems(0).SubItems(2)
Dim icon = DirectCast(My.Resources.ResourceManager.GetObject(resourceName), Icon)
Dim bmp = icon.ToBitmap()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/511550.html
