2011-12-15 54 views
0

我正在爲Windows開發一個WPF桌面應用程序。它使用自己的文件類型,比如說.foo。此文件類型表示已由應用程序修改的文件。例如,它最初是一個.txt,但現在它是.txt.foo(或者我可以使用.txtfoo)。如何修改(但不能替換)與文件擴展名關聯的圖標?

我想在原始圖標頂部顯示一個小應用程序徽標,類似於源代碼管理系統(例如在原始圖標頂部顯示一個小鎖)。

我不想製作全新的圖標,因爲我不想讓用戶感到困惑,我希望他們在使用應用程序之前看到他們已經知道的圖標。所以我只想在當前圖標的頂部添加小標誌,無論它現在在哪裏。

這甚至可能嗎?

+3

這是可能的。我個人會建議反對它。這就像模態對話框 - 這似乎是一個好主意,但想象一下,如果地球上的每個開發人員都試圖做到這一點,那麼混亂就會發生。如果該文件現在將與您的應用相關聯,則應該有您的圖標。向他們展示修改後的記事本圖標或修改後的寫字板圖標,並且不會在這些應用程序中打開該圖標,這會讓用戶感到困惑,並不會從中獲益。 – David 2011-12-15 18:29:41

回答

2

如果您使用自定義文件類型,則必須爲要打算重命名的每個文件修改圖標。如果沒有太多文件類型,安裝程序運行時,您的.txtfoo而不是.txt.foo將是一種解決方案,您可以在註冊表中註冊新文件類型,並安裝修改的圖標。但是,如果它們中有很多會變成問題。代碼項目上的Get Registered File Types and Their Associated Icons in C#文章和C#: Set File Type Association可能對您嘗試執行的某些操作有所幫助。

否則,這聽起來像你正在尋找一個圖標覆蓋處理程序。這種方法意味着你需要有一組小圖標疊加層來表示將放在基本.foo圖標之上的原始類型。有關更多信息,請參閱MSDN上的Creating Icon Overlay Handlers文章。

相關問題