更改整个Windows窗体应用程序.NET Compact Edition的当前文化

Vis*_*pse 7 .net compact-framework cultureinfo setup-project

我需要将应用程序的当前文化更改为th-TH我尝试这样做以创建以下类型的对象,并且我打算将其分配给当前线程的CurrentCulture属性

System.Threading.Thread.CurrentThread.CurrentCulture = 
    new System.Globalization.CultureInfo("en-US");
Run Code Online (Sandbox Code Playgroud)

但我正在使用的.NET Compact版本没有属性中的CurrentCulture System.Threading.Thread.CurrentThread属性.

我们有办法做到这一点吗?

编辑: 我可以更改移动设备的区域设置,然后当我运行应用程序时,我能够从正确的资源文件中获取正确的文本.

但是在使用安装项目安装应用程序时,我无法获得正确的资源

这就是我所做的.

  1. 我创建了安装项目,并将本地化资源,主输出以及内容文件包含到安装项目的文件系统目录中的Application文件夹中.
  2. 然后我在调试模式下构建它并生成所需的Cab文件.
  3. 我将文件传输到我的设备,然后运行cab文件,它说安装成功.
  4. 当我运行应用程序时,它只显示英文字符串而不管设备上的区域设置(但是当我通过直接选择设备在调试模式下运行相同的应用程序时,应用程序中会显示语言资源中的正确字符串在visual studio中并在其上部署应用程序)

我还验证了所需的文件夹,如fr-CA,th-TH等,是在我的应用程序的.exe存在的同一目录中创建的

Zoh*_*led 1

根据MSDN 的说法,这是不可能的。

您无法在设备上以编程方式设置当前区域性。它们由设备制造商设置或由设备用户手动配置,例如使用运行 Windows CE 或 Windows CE .NET 的 Pocket PC 上的区域设置,当前区域性设置基于每个设备。

不过,我确实在Code Project上找到了一篇文章,提出了解决此问题的方法。
基本上,作者创建了自己的 ResourceManager 和基本表单,这意味着该解决方案可能不太容易应用于现有的紧凑框架应用程序。

根据应用程序的复杂性,您可能需要考虑自己实现某种 ResourceManager,或者使用代码项目文章中的资源管理器。