我目前正在编写一些代码来处理我的 Silverlight 4 应用程序中的键盘快捷键。我想创建一个管理窗口,如果用户不想使用默认键盘快捷键,他们可以在其中定义自定义键盘快捷键。然而,某些键在某些语言中有不同的翻译(例如 Home、Del 等)。当然,我想翻译这些文本,以便每个用户都能正确理解键盘快捷键。
像这样的东西有内置翻译吗?我在想 DateTime 的行为方式。如果我使用 DateTimes,几天或几个月的文本将通过系统文化设置自动定义。
string dateTimeTest = DateTime.Now.ToLongDateString();
在德国系统上,这会产生文本“Freitag, 20. Juli 2012”。
键也有类似的东西吗?还是我必须手动翻译所有需要的 key ?
提前致谢!
最佳答案
与大多数语言支持一样,您必须在 Silverlight 中自己完成此操作。当然,有一些方法可以让这更容易。
如果您的应用程序在浏览器外 (OOB) 中运行,在 Silverlight 4 中,您可以部署一个 COM 对象来包装对 GetKeyNameText
的 native 调用。 ;在 Silverlight 5、OOB 或提升的浏览器内应用程序中,您可以直接 P/调用它。
但是,如果您在没有提升权限的情况下在浏览器中运行,您的选择将大大减少。我不知道有任何库(商业或其他)提供此功能,因此您将必须创建自己的可本地化资源和相关方法来实现此功能。
您可能会找到 W3C guidance on accessibility in Silverlight成为有用的资源。
关于c# - Silverlight 4 中 System.Windows.Input.Key 枚举的翻译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11576359/