1

我有一个支持多种语言的应用程序。每种语言都保存在 ResourceDictionary 中,然后在运行时合并到主资源字典中。除了汉堡菜单外,所有东西都可以找到。菜单从不显示字典中的合并值。菜单中的每个按钮都将其文本绑定到一个静态资源。

Hamburger 菜单似乎是在 App.xmal.cs 中调用 OnInitializeAsync 之前创建的,因为这是我合并字典的地方,并且 Hamburger 菜单总是从主字典中加载默认文本。

在应用程序中,当我选择另一种语言时,应用程序上的其余部分会立即更改为新语言,但汉堡菜单永远不会更新文本,我找不到任何方法来强制它更新文本。

有人知道如何动态更改汉堡菜单中按钮上的文本吗?

4

1 回答 1

0

这特别简单。请记住,这只是 XAML。在 HamburgerButtonInfo 中,您向 TextBlock 提供您拥有的文本。您需要做的就是向该 TextBlock 添加一个 x:Name,然后您可以在 Shell 中随意更改它。我不确定这是否有意义,但我确实希望它有意义。请记住,这只是更新 TextBlock,而不是使用模板 10 更新某些内容。请记住,这只是 XAML。

public class Shell
{
    public void UpdateText(string text)
    {
        this.MyTextBlock.Text = text;
    }
}

没什么特别的。

于 2016-06-14T18:56:29.917 回答