I tested the following on the entire upper word in it:
string proper = "TEST STRING"; CultureInfo properCase = System.Threading.Thread.CurrentThread.CurrentCulture; TextInfo currentInfo = properCase.TextInfo; proper = currentInfo.ToTitleCase(currentInfo.ToLower(proper));
So - change the string to lowercase before calling ToTitleCase .
The MSDN documentation says that a string that is uppercase (such as an acronym) will not be converted, and the sample code provided in the message confirms this.
Odded source share