我有一个支持多种语言的应用程序。每种语言都保存在一个资源字典中,然后在运行时合并到主资源字典中。除了汉堡菜单之外,所有的东西都可以找到。菜单从不显示字典中的合并值。菜单中的每个按钮都将其文本绑定到静态资源。
汉堡菜单甚至似乎是在 App.xml 中调用 OnInitializeAsync 之前创建的.cs因为这是我合并词典的地方,汉堡菜单总是从主词典加载默认文本。
在应用程序中,当我选择其他语言时,应用程序上的其余部分会立即更改为新语言,但汉堡菜单永远不会更新文本,我找不到任何强制它更新文本的方法。
有谁知道如何动态更改汉堡菜单按钮上的文本?
这特别简单。请记住,这只是 XAML。在您的汉堡按钮信息中,您向文本块提供您拥有的文本。您需要做的就是向该文本块添加一个 x:Name,然后您可以从 Shell 中根据需要更改它。我不确定这是否有意义,但我确实希望它有意义。请记住,这只是更新文本块,而不是使用模板 10 更新某些内容。请记住,这只是 XAML。
public class Shell
{
public void UpdateText(string text)
{
this.MyTextBlock.Text = text;
}
}
没什么特别的。