2009-01-09 57 views
2

我試圖做一些相當簡單的事情:添加一個簡單的圖標到應用程序的主窗口。這可以很容易地完成。圖標本身放置在資源目錄中,其構建操作設置爲資源。該窗口的XAML代碼包含對此圖標的引用:如何在WPF中正確(希望在XAML中)正確鏈接資源?

Icon="Resources/wiser.ico" 

這很有效。然而,我真正想要做的是從另一個地方抓取這個圖標,這是一個在我們的應用程序的幾個版本之間共享的圖像目錄(根據您的計算方式,我們支持大約5個平臺)。在我們的WinForms過去,這是通過將資源添加爲現有項目並從對話框中選擇「作爲鏈接添加」來完成的。但是,這會導致上述圖標出現問題。

首先,它不會在組裝中的適當位置結束。 Reflector在應用程序的基本路徑中找到它,而不是在它應該在的Resources目錄中。圖標的非鏈接版本確實出現在資源目錄中。

其次,路徑修復(Icon =「wiser.ico」)允許編譯的東西,但會讓設計者拋出一個錯誤,導致設計器本身無用。

我懷疑這只是一個錯誤(或兩個,取決於你如何計數)。有沒有簡單的方法呢?請注意,我曾希望支持源代碼控制系統的鏈接,但SVN似乎並未支持這種鏈接,並且最終結果可能會導致無法維護。

1)你可以把你的資源,你可以在你的應用程序共享一個單獨的組件:我能想到的資源共享

+0

@Ken:非常好的問題。事實上,我在開發自己的WPF應用程序時遇到了同樣的問題,並沒有找到解決方案。你有沒有在MS Connect上提交過這個?對我來說,這看起來像是一個錯誤,儘管我希望爲了當前的發展而存在一種解決方法。 – Noldorin 2009-07-09 23:06:55

+0

這是我在網上唯一可以找到的其他地方確認問題:http://learnwpf.com/Posts/Post.aspx?postId=f90013aa-2164-4c56-a672-4136b2dc493b。不幸的是,它沒有提供解決方法。 – Noldorin 2009-07-09 23:15:32

回答

1

兩件事情。

使用此語法獲得ICO或其它項目(PNG,XAML等)進行組裝的:

Icon="/CommonResources;component/app.ico" 

或使用包語法

Icon="pack://application:,,,/CommonResources;component/app.ico" 

2)你可以使用打包應用程序語法以將ICO加載到程序集的相對文件路徑中。

Icon="pack://siteoforigin:,,,/app.ico"