簡體   English   中英

強制 .NET/C# UI 自動化使用特定的文化(土耳其語)

[英]Forcing .NET/C# UI Automation to use a specific culture (Turkish)

我有一個用 C# 編寫並使用 .NET 的 UI 自動化應用程序(當前為 3.5,但如果 4 解決了問題,我很樂意更改)。 我正在運行 Windows 7 的英文版。我希望能夠在任何給定的 UI 上運行此應用程序,並且無論給定 UI 的設置方式或當前系統語言是什么,我都希望它的行為如下通常是我無法控制的:

我想強制使用 UI 自動化的應用程序使用土耳其語規則進行大寫。 特別是,如果自動化應用程序在包含字符“i”的 UI 上運行,我希望 UI 自動化部分自動將字符串/字符轉換為大寫以將該字符轉換為“İ”而不是“I”。

對於訪問鍵和加速鍵來說,這尤其是一個問題。 例如,如果 UI 中的按鈕將“i”作為訪問鍵,則該按鈕的 UI 自動化應用程序中的AutomationElement會將其訪問鍵列為“I”,這在土耳其語中是不正確的。

我嘗試將 Thread 文化和 Thread ui 文化設置為土耳其語,但這不起作用。 我不確定 go 如何強制AutomationElement class 執行此操作。 任何建議/幫助/示例將不勝感激。

如果不清楚,請告訴我,我會盡力解釋得更好。

如果您只想正確地大寫字符串,就這么簡單:

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

不幸的是,您必須為每個字符串執行此操作。 不幸的是,我不太清楚你的用例是什么,所以我的回答可能不是很有用......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM