C# · 2月 27, 2022

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

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

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

string dateTimeTest = DateTime.Now.ToLongDateString();

在德国系统上,这导致文本“Freitag,20.Juli 2012”.

是否有像这样的可用于键的东西?或者我是否必须手动翻译所有需要的密钥?

提前致谢!

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

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

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

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