我正在尝试为我的WPF程序添加多种语言。所以我使用Properties.Resources来存储所有可见的字符串。
在我的XAML中我有
<Window x:Class="DCMarker.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:loc="clr-namespace:DCMarker.Properties"
Title="{x:Static loc:Resources.Title}" Height="534.6" Width="612" Loaded="Window_Loaded" Closed="Window_Closed"
>
<Grid>
<Menu Height="26" VerticalAlignment="Top">
<MenuItem Header="{x:Static loc:Resources.Tools}">
<MenuItem x:Name="ToolsConnect" Header="{x:Static loc:Resources.ToolsConnect}" Click="ToolsConnect_Click" />
<MenuItem x:Name="ToolsDisconnect" Header="{x:Static loc:Resources.ToolsDisconnect}" Click="ToolsDisconnect_Click" />
<Separator HorizontalAlignment="Left" />
<MenuItem x:Name="ToolsOptions" Header="{x:Static loc:Resources.ToolsOptions}" Click="ToolsOptions_Click" />
</MenuItem>
但是如果我向Resources添加一个字符串,那么XAML编辑器(或者Intellisence)将无法识别该字符串。通常,如果我重建解决方案,他们将被识别,但有时我必须重新启动VS2013。
任何人都知道为什么以及如何解决这个问题?
// anders
答案 0 :(得分:2)
StaticExtension
类只会找到公共成员,不幸的是,当生成Resources.resx
文件的代码时,检索资源的属性会标记为internal
。
要解决此限制,您可以转到您的资源&#39;属性并将“自定义工具”从ResXFileCodeGenerator
更改为PublicResXFileCodeGenerator
,然后编译您的解决方案并重试。