gpt4 book ai didi

wpf - 在 WPF 中本地化

转载 作者:行者123 更新时间:2023-12-04 21:43:36 24 4
gpt4 key购买 nike

我正在本地化 WPF 应用程序。需要根据 XAML 中的特定 UI 文化在运行时更改数据网格列标题.

尽管我可以通过使用 LocBaml 在后台代码和 XAML 中进行本地化工具。我无法通过 XAML 中的一个特定场景实现它。场景是我正在解析 XAML,因为我正在将它加载到 XML 文件中并解析..

所以现在当我解析它时:

<dg:DataGridColumnHeader Header="{x:Static findlocale:My.Resources.String.anylocalword}"></dg:DataGridColumnHeader>

其中 findlocale 是 XAML 命名空间关键字,我收到错误:

XAML parse error. Cannot find type My.Resources.String.localword in the xaml namespace.

为什么这在这种情况下不起作用?我该如何克服它?

最佳答案

我敢打赌您的 findlocale XML namespace 不正确。如果你有类似的东西:

namespace MyNameSpace.MySubNamespace {
public class MyClass {
public static string MyProperty { get; set; }
}
}

那么您的 XML 命名空间必须声明为 xmlns:findlocale="clr-namespace:MyNameSpace.MySubNamespace"为了使用 {x:Static findlocale:MyClass.MyProperty} .

不能xmlns:findlocale="clr-namespace:MyNameSpace" 那样声明您的XML 命名空间并像{x:Static findlocale:MySubNamespace.MyClass.MyProperty}一样使用它.

此外,如果您有任何嵌套类/枚举,则必须使用 +代替 . 登录.所以如果你有:

namespace MyNameSpace.MySubNamespace {
public class MyClass {
public class MyNestedClass {
public static string MyProperty { get; set; }
}
}
}

访问MyProperty , 你需要像 xmlns:findlocale="clr-namespace:MyNameSpace.MySubNamespace" 这样声明你的 XML 命名空间并像 {x:Static findlocale:MyClass+MyNestedClass.MyProperty} 一样访问它.

关于wpf - 在 WPF 中本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7802581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com