And*_*s59 2 c# wpf xaml visual-studio-2013
我正在尝试向我的 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>
Run Code Online (Sandbox Code Playgroud)
但是,如果我向 Resources 添加一个字符串,则 XAML 编辑器(或者可能是 Intellisence)将无法识别该字符串。通常,如果我重建解决方案,它们会被识别,但有时我必须重新启动 VS2013。
有人知道为什么以及如何解决这个问题吗?
// 安德斯
该类StaticExtension只会查找公共成员,不幸的是,当Resources.resx生成文件的代码后,检索资源的属性被标记为internal。
要解决此限制,您可以转到资源属性并将 \xe2\x80\x9c自定义工具\xe2\x80\x9d 从更改ResXFileCodeGenerator为PublicResXFileCodeGenerator,然后编译您的解决方案并重试。