首页 文章

强制.NET / C#UI自动化使用特定文化(土耳其语)

提问于
浏览
0

我有一个用C#编写的UI自动化应用程序并使用.NET(目前是3.5但如果4解决了这个问题,我会很乐意改变) . 我正在运行英文版的Windows 7.我希望能够在任何给定的UI上运行此应用程序,并使其行为如下,无论给定的UI如何设置或当前的系统语言是什么,就像那些东西通常超出我的控制范围:

我想强制使用UI Automation的应用程序使用土耳其语规则进行大写 . 特别是,如果自动化应用程序在包含字符“i”的UI上运行,我希望UI自动化部分自动将字符串/字符转换为大写,以将该字符转换为“İ”而不是“I” .

这尤其是访问和加速键的问题 . 例如,如果UI中的按钮具有'i'作为其访问键,则该按钮的UI自动化应用程序中的 AutomationElement 将其访问密钥列为'I',这在土耳其语中是不正确的 .

我尝试将Thread文化和Thread ui文化设置为土耳其语,但这不起作用 . 我不确定如何强制 AutomationElement 类来执行此操作 . 任何建议/帮助/示例将不胜感激 .

如果不清楚请告诉我,我会尝试更好地解释它 .

1 回答

  • 0

    如果你想正确地大写字符串,就像那样容易:

    string turkish = "iptal";
    CultureInfo turkishCulture = new CultureInfo("tr-TR");
    string upperCased = turkish.ToUpper(turkishCulture);
    

    不幸的是,你必须为每个字符串执行此操作 . 不幸的是,我不太清楚你的用例是什么,所以我的答案可能不是很有用......

相关问题