在xaml编辑器中将无法识别向Resources添加字符串

时间:2015-01-27 13:52:36

标签: 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>

但是如果我向Resources添加一个字符串,那么XAML编辑器(或者Intellisence)将无法识别该字符串。通常,如果我重建解决方案,他们将被识别,但有时我必须重新启动VS2013。

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

// anders

1 个答案:

答案 0 :(得分:2)

StaticExtension类只会找到公共成员,不幸的是,当生成Resources.resx文件的代码时,检索资源的属性会标记为internal

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