Win UI3开发笔记(八)多语言切换续

前端控件绑定uid可以在更改语言重启之后自动显示当前语言的信息。可是如果button按钮点击之前显示"hello",点击之后显示"Pig",应该怎么改?

  1. 前端按钮
csharp 复制代码
<Button   x:Name="testLanguage_btn"
          x:Uid="ButtonHello"
        Click="button1_Click" />
  1. 资源文件

    中文和英文下的资源文件都定义:

  2. 后端代码

csharp 复制代码
private void button1_Click(object sender, RoutedEventArgs e)
{
    ResourceContext.GetForViewIndependentUse().Reset();
    var _resourceLoader = ResourceLoader.GetForViewIndependentUse();
    string x = testLanguage_btn.Content.ToString();
    string y = _resourceLoader.GetString("ButtonHello/Content");
    if ( x== y)
    {
        testLanguage_btn.Content = _resourceLoader.GetString("ButtonPig/Content");
    }
    else
    {
        testLanguage_btn.Content = _resourceLoader.GetString("ButtonHello/Content");
    }
}

过程:

本来一开始查的代码是_resourceLoader = ResourceLoader.GetForCurrentView();,报错,后来要在括号里加"Localization",也不行,最后使用GetForViewIndependentUse方法,不会报错但是查出来的是空字符串,发现getstring函数中需要加斜杠和相关属性。
参考链接:https://github.com/microsoft/microsoft-ui-xaml/issues/5940

查的两个方法的不同:

ResourceLoader.GetForViewIndependentUse()

用途:获取一个与特定视图无关的资源加载器。

适用于需要在应用的多个部分使用同一资源加载器的场景,例如在后台任务或其他不依赖于 UI 视图的组件中。

行为:不依赖于当前活动的视图上下文。

可以在后台线程中使用,因为它不涉及 UI 线程。

ResourceLoader.GetForCurrentView()

用途:获取与当前视图关联的资源加载器。

适用于需要在特定视图中使用资源的场景。

行为:依赖于当前活动的视图上下文。

只能在 UI 线程中使用,因为它与视图有关联。

选择哪种方法:

如果你在应用程序的视图(UI)中使用资源,并且需要根据当前视图的上下文加载资源,请使用 ResourceLoader.GetForCurrentView()。

如果你在非 UI 线程中使用资源,或在不依赖于特定视图上下文的情况下使用资源,请使用 ResourceLoader.GetForViewIndependentUse()。

相关推荐
吴梓穆17 小时前
UE5学习笔记 FPS游戏制作38 继承标准UI
笔记·学习·ue5
V---scwantop---信18 小时前
英文字体:大胆都市街头Y2Y涂鸦风格品牌海报专辑封面服装字体 Chrome TM – Graffiti Font
笔记·字体
Moonnnn.18 小时前
运算放大器(四)滤波电路(滤波器)
笔记·学习·硬件工程
吴梓穆18 小时前
UE5学习笔记 FPS游戏制作37 蓝图函数库 自己定义公共方法
笔记·学习·ue5
吴梓穆18 小时前
UE5学习笔记 FPS游戏制作41 世界模式显示UI
笔记·学习·ue5
s_little_monster19 小时前
【Linux】进程信号的捕捉处理
linux·运维·服务器·经验分享·笔记·学习·学习方法
RedMery20 小时前
论文阅读笔记:Denoising Diffusion Implicit Models (4)
论文阅读·笔记
go_bai20 小时前
Linux环境基础开发工具——(2)vim
linux·开发语言·经验分享·笔记·vim·学习方法
吴梓穆20 小时前
UE5学习笔记 FPS游戏制作35 使用.csv配置文件
笔记·学习·ue5
100分题库小程序20 小时前
2025年机动车授权签字人考试判断题分享
经验分享·笔记