2011-02-15 21 views
0

我想創建一個多語言WPF程序,將加載它的語言從xml路徑,雖然我有問題加載一個MenuItem翻譯並給它加速器。C#wpf - MenuItem從xml文件(加速器[alt點擊]快捷方式)加載頭

這裏的主要代碼:

<Window.Resources> 
    <XmlDataProvider x:Key="Lang" Source="/lang/english.xml" XPath="Language/MainWindow"/> 
</Window.Resources> 
<MenuItem Header="{Binding Source={StaticResource Lang}, XPath=MenuItems/MenuItemFile/@Header}"/> 

這是我的語言文件看起來像:

<?xml version="1.0" encoding="utf-8" ?> 
<Language> 
    <MainWindow> 
    <MenuItems> 
     <MenuItemFile Header="File" /> 
    </MenuItems> 
    </MainWindow> 
</Language> 

我的問題是: 在語言文件這一切都ok了這種狀態,但當我試圖將MenuItemFile的標題更改爲「_File」(給它一個加速器選項)時,程序啓動併爲File菜單提供標題「_File」而不是「File」(和加速器)。

感謝先進的, 丁。

+0

你知道WPF內置的本地化構建正確的? http://msdn.microsoft.com/en-us/library/ms788718.aspx – Aren 2011-02-15 22:34:02

回答

1

綁定到AccessText,而不是結合Header直接:

<MenuItem> 
    <MenuItem.Header> 
     <AccessText Text="{Binding Source={StaticResource Lang}, XPath=MenuItems/MenuItemFile/@Header}"/> 
    </MenuItem.Header> 
</MenuItem> 
+0

優秀!工作很棒:) – dinbrca 2011-02-15 23:19:21