ユーザーの地域設定に関して、Windows 8 Metro アプリ (XAML & C#) で問題が発生しています。アプリはユーザーの地域設定を尊重しないようです。そのため、Windows 8 がフィンランド語形式で日付と時刻を表示するように設定されていても、アプリは米国形式を使用して表示します。しかし、これは私が見逃している何かがあるに違いないほど大きな問題ですか?
これをテストするために、WPF-applicationを作成することから始めました。アプリケーションは、CurrentCulture とフォーマットされた DateTime.Now を出力するだけです。
private void Culture_Loaded_1(object sender, RoutedEventArgs e)
{
this.Culture.Text = System.Globalization.CultureInfo.CurrentCulture.DisplayName;
}
private void Date_Loaded_1(object sender, RoutedEventArgs e)
{
this.Date.Text = DateTime.Now.ToString();
}
これが私のデフォルトの地域設定です:
実行すると、アプリはフィンランド語の形式で日付を表示しました。
次に、地域設定を米国に変更しました。
アプリを再度実行すると、カルチャと書式設定が変更されました。
これは、すべてが機能することを期待したとおりであり、WinRT アプリが機能することを期待した方法でもあります。
次のステップとして、同じコードで WinRT (XAML & C#) アプリを作成し、地域設定をフィンランド語に戻しました。問題:
書式設定が "フィンランド語" であることを地域設定で定義した場合でも、WinRT アプリは日時を米国形式で表示します。次に、アプリのプロジェクト ファイルを変更し、fi-FI を既定の言語にしました。
この変更により、アプリのカルチャも変更されました。
変。デフォルトの言語をデフォルト値に戻すと、書式設定が US に復元されました。次に、プロジェクト内に「Strings - fi-FI」フォルダーを作成し、プロジェクトに空の「Resources.resw」を追加しました。フィンランド語のフォーマットを取得しているので、この空のファイルで十分なようです。
空のリソース ファイルを削除するとすぐに、書式設定が US に戻ります。
非常に奇妙な。
これはいくつかの質問につながりますが、私が思う主な質問は、WinRT アプリが WPF アプリのようにユーザーの地域設定に従わないのは意図的なことですか?