设计时的 UWP 资源字符串 (.resw)

Flo*_*ser 1 uwp uwp-xaml

我按照https://learn.microsoft.com/en-us/windows/uwp/globalizing/put-ui-strings-into-resources中的说明创建了一个 .resw 文件。虽然本地化在运行时运行良好,但在设计时不会显示任何文本。

到目前为止提出的唯一解决方案似乎只适用于 Windows 8.1 应用程序:设计时的 Windows 应用商店应用程序 ResourceLoader

Nic*_*SFT 5

New Method您提到的解决方案也适用于 UWP 。并且更建议在设计时使用Data Binding 。

以下类的工作方式类似于 .resw 文件reader。如果您发送 key 参数,它将返回 key 的值。

public class LocalizedStrings
{
    public string this[string key]
    {
        get
        {
            return ResourceLoader.GetForViewIndependentUse().GetString(key);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在使用绑定之前,您需要reader在 App.xaml 文件中实例化 。

<Application.Resources>
        <ResourceDictionary>
            <local:LocalizedStrings x:Key="Localized"/>
        </ResourceDictionary>
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)

资源.resw

<data name="Title" xml:space="preserve">
  <value>ResTitleTest</value>
</data>
Run Code Online (Sandbox Code Playgroud)

用法

<TextBlock Text="{Binding Source={StaticResource Localized}, Path=[Title]}" />
Run Code Online (Sandbox Code Playgroud)

Textblock注意:只有构建完成后,设计器中的内容才会显示。

在此输入图像描述

  • 对我来说,这会导致显示“项目”而不是实际值。这比根本不显示文本要好,但是由于 IntelliSense 对路径属性没有帮助,很容易发生拼写错误,我希望在设计时看到这一点。有解决办法吗? (2认同)