2012-04-30 11 views
3

"en-US"以外の文化と互換性のないユーザーコントロールを作成しました。また、このユーザーコントロールを "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」文化と互換性のあるユーザーコントロールを持っていると仮定します。このユーザーコントロールは、DateTimeのタイプである依存関係プロパティを持っており、それがこの方法によって、その値を取得している:

<my:uc1 x:Name="UserControl1" Date="4234/12/22" /> 
アプリケーション文化は「EN-US」である場合には

ユーザーコントロールを取得します「4234/12/22」ですが、アプリケーションカルチャが何か他のものである場合は、「4234/12/22」を自動的にアプリケーション独自のカレンダーに変換し、「0744/04/08」をユーザーコントロールに渡し、ユーザーコントロールの背後にあるすべてのロジックを破棄します!完全に災難です。

私は「EN-US」に独占的にユーザーコントロールの文化を設定することで、この変換を防ぎたいです。

私は十分な状況を明らかにしたことを願っています。

+0

文化が「0744/04/08」に変換する(「en-US」形式ではなく「M/d/yyyy」である)驚くべき日付の外にさらに驚くべきこと)? –

+0

@ Martin Liversage:単なる例です。その文化を秘密にしておきましょう: - & –

+0

私は秘密を明らかにするが、巨大な年を与えたら、私はヘブライ語のカレンダーを言うだろう...もっと真剣に、このスレッドは本当に興味深い二重文化(フランス語/アラビア語またはグレゴリオ/エチオピアのカレンダー)の奇妙さ。 – odalet

答えて

4

コントロールのFrameworkElement.Languageプロパティを設定したり、コントロールのXAMLにxml:lang属性を適用したりすることができます。あなたが設定しなければならない値はen-USです。

このプロパティ/属性を使用して設定文化は文化固有の文字列がコントロールに変換されている方法に影響します。例えば。あなたはD(長い日付)形式を使用してDateTimeを表示する場合は、Monday, 30 April 2012ときxml:lang="en-US"30. april 2012xml:lang="da-DK"のようなものを取得します。しかし

、日付がCultureInfo.InvariantCulture(基本的にen-US)を使用して解析され

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

のように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

私はこの質問の詳細を提供しました。ご注意いただきありがとうございます。 –

関連する問題