2016-09-11 7 views
-1

Windows의 제어판에는 지역 형식 (controlPanel => Region => Formats (windows 10))을 변경할 수있는 콤보 상자가 있습니다. 예 : 페르시아어 또는 영어Windows 영역 형식을 얻는 방법?

내 응용 프로그램에서이 지역 설정을 검색하고 싶습니다.

내가 같은 코드 시도 :

 CultureInfo ci = CultureInfo.InstalledUICulture; 
     var installed = ci.Name; 

     ci = CultureInfo.CurrentUICulture; 
     var currentUi = ci.Name; 

     ci = CultureInfo.CurrentCulture; 
     var current = ci.Name; 

하지만 installedcurrentUi은 항상하고 current 'en-US입니다' 'FA-IR'이다

내가 컨트롤 패널 형식을 변경할 때 그들은 변하지 않습니다.

+0

'fa-IR'은 예상하지 못했습니까? 게다가 당신이 시도 :'응용 프로그램을 시작 => 확인 문화 => 지역 형식을 변경 => 응용 프로그램을 다시 시작하고 다시'확인? 제 생각에는 응용 프로그램을 다시 시작한 후에 만 ​​변경됩니다. – Stefan

+0

내 응용 프로그램을 다시 시작했지만 변경되지 않습니다. –

+0

제어판 애플릿을 사용하면 현재 영역이 아닌 영역의 형식을 변경할 수 있습니다. 실제로 매우 유용하지는 않습니까? 그러나 프로그램이 기본 culture를 변경할 때 형식을 구성해야합니다. 발췌 문장의 어떤 것도이 작업을 수행하고 있다고 제안하지 않습니다. –

답변

-1

이 코드를 사용했습니다.

Thread.CurrentThread.CurrentCulture.ClearCachedData(); 
var thread = new Thread(s => ((State)s).Result = Thread.CurrentThread.CurrentCulture); 
var state = new State(); 
thread.Start(state); 
thread.Join(); 
var culture = state.Result; 

그리고 우리는 culture.Name을 사용합니다. 그리고이 경우 프로그램을 닫았다가 다시 열 필요는 없습니다.

관련 문제