4

「en-US」以外のカルチャと互換性のないユーザー コントロールを作成しました。また、このユーザー コントロールを "en-US" ではないカルチャを持つアプリケーションに埋め込むことは避けられません。このユーザー コントロールのカルチャを変更しないようにアプリケーションを強制することは可能ですか?
ユーザーコントロール内にソリューションを用意することをお勧めします。
このスレッドを読みました: 埋め込み WPF ユーザー コントロールを使用した WinForms アプリケーションのローカライズですが、 WpfLocalization.LocalizationScope.SetCulture を使用できません
この関数は本当に存在しますか?

また、 Falseに設定できるLocalizableタグもありますが、これは.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" のみに設定することで、この変換を防止したいと考えています。

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

4

1 に答える 1

5

FrameworkElement.Languageコントロールのプロパティを設定するか、コントロールxml:langのXAMLに属性を適用できます。設定する必要のある値はですen-US

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

ただし、XAMLで日付を指定した場合

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

CultureInfo.InvariantCultureその日付は(基本的に)を使用して解析されen-USます。それはあなたが説明しているように見える行動ではありません。あなたはあなたの本当の問題の説明に少し曖昧ですが、私の主張を確認する30/4/2012ために、日付を入力して、コンパイルに失敗することを確認することができます。これは、Visual Studioの現在の文化がそうである場合だけでなくen-US、私の場合da-DK(日付形式がである場合)の場合にも行われますd/M/yyyy

于 2012-04-30T07:41:15.647 に答える