2012-04-30 3 views
3

"ko-ko"이외의 문화권과 호환되지 않는 사용자 정의 컨트롤을 작성했습니다. 또한 "en-US"가 아닌 문화권의 응용 프로그램에이 사용자 정의 컨트롤을 포함시키는 것은 필연적입니다. 따라서 응용 프로그램이이 사용자 정의 컨트롤의 문화권을 변경하지 않도록 할 수 있습니까?
사용자 컨트롤 내부에 솔루션이있는 것이 좋습니다. 이 Localizing a WinForms Application with Embedded WPF User Controls 하지만 WpfLocalization.LocalizationScope.SetCulture
이 기능이 정말 존재 하는가를 사용할 수 없습니다
나는이 스레드를 읽고?개별 WPF 사용자 컨트롤 culture 설정

또한 거짓로 설정 될 수 지역화 태그가 있지만, 그것은 .csproj 파일에 자원 정의를 위해 단지이다 http://msdn.microsoft.com/en-us/library/ms788718.aspx

그래서 대해 어떤 생각을 가지고 사람이 이 문제 ?


더 설명 :
한다고 가정 우리 문화 X를 사용하여 응용 프로그램 및 "en-US입니다"문화와 호환되는 사용자가 제어 할 수 있습니다. 이 사용자 컨트롤은 날짜 시간 유형 인 종속성 속성을 가지고 있으며,이 방법에 의해 그 값을 받고있다 :

<my:uc1 x:Name="UserControl1" Date="4234/12/22" /> 
응용 프로그램의 문화는 "EN-US"인 경우

사용자 컨트롤을 얻을 것이다 "4234/12/22"이지만 응용 프로그램 문화권이 다른 경우에는 "4234/12/22"을 응용 프로그램의 자체 달력으로 자동 변환하고 "0744/04/08"을 사용자 정의 컨트롤로 전달하고 사용자 정의 컨트롤 뒤에있는 모든 논리를 파멸시킵니다 ! 완전히 재앙입니다.

"en-US"로 사용자 정의 컨트롤의 culture를 독점적으로 설정하여이 변환을 막고 싶습니다.

나는 충분히 상황을 명확히하기를 희망한다.

+0

"en-US"형식 (M/d/yyyy) 형식으로 표현되지 않은 놀라운 날짜 외에 문화권에서 "0744/04/08"로 변환됩니다. 훨씬 더 놀라운)? –

+0

@Martin Liversage : 그것은 단지 예일뿐입니다. 그 문화를 은밀히 지켜 드리겠습니다. - & –

+0

미안하지만 비밀을 밝히지 만 거대한 해를 받으면 히브리어 달력이라고 ... 더 심각하게 말해서,이 스레드는 나에게 곧 흥미로울 것입니다. 이중 문화 (프랑스어/아랍어 또는 그레고리오/에티오피아 달력)의 기이함. – odalet

답변

4

컨트롤의 FrameworkElement.Language 속성을 설정하거나 xml:lang 특성을 컨트롤의 XAML에 적용 할 수 있습니다. 설정할 값은 en-US입니다.

이 속성/특성을 사용하여 설정 한 culture는 문화권 관련 문자열이 컨트롤에서 변환되는 방식에 영향을줍니다. 예 : D (긴 날짜) 형식을 사용하여 DateTime을 표시하는 경우 xml:lang="en-US" 일 때 Monday, 30 April 2012이고 xml:lang="da-DK" 일 때 30. april 2012 일 때 얻을 수 있습니다.

그러나

<my:uc1 x:Name="UserControl1" Date="4/30/2012" /> 

에 해당 날짜하는 (기본적으로 en-US) CultureInfo.InvariantCulture를 사용하여 구문 분석과 같은 XAML에서 날짜를 지정합니다. 그것은 당신이 묘사하는 것처럼 보이지 않는 행동입니다. 당신은 실제 문제에 대한 설명에서 다소 모호하지만 내 주장을 확인하기 위해 날짜에 30/4/2012을 입력하면 컴파일에 실패 할 수 있습니다. Visual Studio의 현재 문화권이 en-US 일 때뿐만 아니라 내 경우 da-DK (날짜 형식이 d/M/yyyy 인 경우)에서도 마찬가지입니다.

+0

검토해 주셔서 감사합니다.하지만 "en-US"가 아닌 사용자 제어 문화권에는 영향을 미치지 않습니다. 나는 사용자 컨트롤로드에서 문화를 점검했지만 과거와 여전히 동일합니다. –

+0

@SarahCompard : 댓글에서 _user 컨트롤 culture_의 의미를 명확히 할 수 있습니까? XAML에서 'xml : lang' 속성을 설정하면 바인딩에서 문자열 형식이 적절한'CultureInfo '등을 사용하게됩니다. 사용자 정의 컨트롤에서 지역화 문제가있는 곳은 어디입니까? –

+0

질문에 대한 자세한 내용을 제공했습니다. 주목 해 주셔서 감사합니다. –