2010-10-08 74 views
2

在我的WPF 4.0基於桌面的應用程序中,爲了本地化我的應用程序(例如英語&法語本地化)我正在使用Resources.resx文件,在那裏輸入對話名稱(ID)及其英文和法文本地化的價值。一切都很正常,除了一兩件事 - 的Visual Studio的智能感知2010智能感知不適用於WPF/C#項目中的Resources.resx文件,VS2010

比方說,我有一個按鈕:

<Button x:Name="Toolbar_Search_Button" 
     Content="{x:Static res:Resources.Toolbar_Search_Button}" /> 

我想要把它的內容(按鈕標籤),英文和法文,爲了做到這一點,我添加了Resources.resx和Resources.fr.resx字符串,ID爲«Toolbar_Search_Button»,併爲每個字符串(Search/Recherche)給出了一個值,現在我必須將字符串ID分配給按鈕的內容屬性。在我的情況下,我必須寫下所有這些長字符串:«x:Static res:Resources.Toolbar_Search_Button»和IntelliSense完全不能幫助我。它暗示我的唯一的事情是「Member =」,但是當我輸入「res:Resources」時,我想要的是它給我所有存在的字符串ID,正如我們通常在智能感知啓用時看到的一樣。

我查了VS2010的喜好,智能感知是各種項目/語言激活了,當我寫的其他XAML/C#代碼,就像當我鍵入«無線»它表明我,它的作品«寬度»等

我的問題是: 如何啓用智能本地化/資源?我可以輸入«res:Resources»,然後查看我擁有的所有本地化資源字符串。

非常感謝。

回答

1

我有完全相同的問題。我不相信微軟是愚蠢的,通過一些默認的Visual Studio 2010安裝的未設置選項/設置來禁用那一點intellisense。我可以原諒他們VS VS 2008,因爲那是XAML設計支持的第一個正確實現(VS 2005插件是別的東西)。如果您在resx文件中編寫了一個字符串,然後在XAML中指定了鍵值,則缺乏實現可能與事實有關,XAML將開始抱怨您的resx文件中不存在新密鑰。一旦你建立你的應用程序,XAML將開始接受新密鑰。

請注意,XAML具有可怕的intellisense支持。以代碼背後的新型和改進的智能感知爲例 - 如果您鍵入「.Cust」,智能感知將提供「客戶」和「現有客戶」。但是在XAML intellisense中沒有實現相同的功能。還有更多這樣的例子...

所以要回答你的問題 - 你不能在XAML中啓用resx intellisense支持,至少我沒有意識到這種可能性。