Silverlight 4中System.Windows.Input.Key枚举的翻译?

时间:2012-07-20 09:12:53

标签: c# silverlight silverlight-4.0 translation

我目前正在处理一些处理Silverlight 4应用程序中键盘快捷键的代码。我想创建一个管理窗口,用户可以在其中定义自定义键盘快捷键,如果他们不想使用默认键盘快捷键。但是,某些键在某些语言中具有不同的翻译(例如Home,Del,...)。当然,我想翻译这些文本,以便每个用户都能正确理解键盘快捷键。

是否有像这样的内置翻译?我在想类似于DateTime的行为方式。如果我使用DateTimes,则会通过系统文化设置自动定义数天或数月的文本。

string dateTimeTest = DateTime.Now.ToLongDateString();

在德国系统上,这会产生文本“Freitag,20。Juli 2012”。

还有类似的东西可用于钥匙吗?或者我是否必须手动翻译所有需要的密钥?

提前致谢!

1 个答案:

答案 0 :(得分:1)

与大多数语言支持一样,您必须自己在Silverlight中执行此操作。当然,有办法让这更容易。

如果您的应用程序正在运行浏览器外(OOB),则在Silverlight 4中,您可以部署一个COM对象,该对象将本机调用包装到GetKeyNameText;在Silverlight 5,OOB或提升的浏览器内应用程序中,您可以直接进行P / Invoke。

但是,如果您在没有提升权限的情况下在浏览器中运行,那么您的选项将大大减少。我不知道任何提供此功能的库(商业或其他),因此您将不得不创建自己的可本地化资源和相关方法来实现此目的。

您可能会发现W3C guidance on accessibility in Silverlight是一个有用的资源。