xaml 编辑器无法识别向资源添加字符串

Adding a string to Resources will not be recognized in xaml editor

我正在尝试将多种语言添加到我的 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>

但是如果我将一个字符串添加到资源中,这个字符串将不会被 XAML 编辑器(或者可能是 Intellisence)识别。通常,如果我重建解决方案,它们将被识别,但有时我必须重新启动 VS2013。

有人知道为什么以及如何解决这个问题吗?

// 安德斯

StaticExtension class 只会找到 public 成员,不幸的是,当生成 Resources.resx 文件的代码隐藏时,检索资源的属性被标记internal.

要解决此限制,您可以转到资源的属性并将“自定义工具”从ResXFileCodeGenerator更改为PublicResXFileCodeGenerator,然后编译您的解决方案,然后重试。