如何在Xaml文件中引用resx资源

时间秒杀一切 提交于 2019-12-09 04:38:50

如何在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>


注意看灰色背景的代码

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!