如何在Xaml檔案中引用resx資源
阿新 • • 發佈:2018-12-22
如何在Xaml檔案中引用Resources.resx檔案中的內容呢?做wpf開發的估計都會碰到這個問題。
其中,最直接的辦法就是修改Resource.resx檔案的屬性。Resource.resx有一個Custom Tool屬性,這個屬性指定了一個tool,預設是ResXFileCodeGenerator,當我們修改了Resources.resx檔案後儲存的時候,這個tool就會自動執行,生成這個internal的Resources類。如果想在Xaml檔案中用Resource.resx檔案的內容,首先把Custom Tool屬性的值改為:
PublicResXFileCodeGenerator,這樣生成的資源類就是public的。
如下圖:
然後,在Xaml檔案中,就可以通過x:Static引用資原始檔中的字串。
<UserControl x:Class="HAManager.ControlCenter.MainControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:res="clr-namespace:HAManager.Properties"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<Menu Height="23" HorizontalAlignment="Left" Name="menu1" VerticalAlignment="Top" Width="auto" >
<MenuItem Header="{x:Static res:Resources.ControlCenterSystem}"></MenuItem>
<MenuItem Header="menu2"></MenuItem>
<MenuItem Header="menu3"></MenuItem>
<MenuItem Header="menu4"></MenuItem>
<MenuItem Header="menu5"></MenuItem>
</Menu>
<ToolBar Height="21" HorizontalAlignment="Left" Margin="0,29,0,0" Name="toolBar1" VerticalAlignment="Top" Width="233" />
</Grid>
</UserControl>
注意看灰色背景的程式碼