1. 程式人生 > >如何在Xaml檔案中引用resx資源

如何在Xaml檔案中引用resx資源

如何在Xaml檔案中引用Resources.resx檔案中的內容呢?做wpf開發的估計都會碰到這個問題。

其中,最直接的辦法就是修改Resource.resx檔案的屬性。Resource.resx有一個Custom Tool屬性,這個屬性指定了一個tool,預設是ResXFileCodeGenerator,當我們修改了Resources.resx檔案後儲存的時候,這個tool就會自動執行,生成這個internalResources類。如果想在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>


注意看灰色背景的程式碼