2011-01-19 29 views

回答

1

如果我沒有記錯的話這取決於正在運行的線程的文化背景。

System.Threading.Thread.CurrentThread.CurrentUICulture

System.Threading.Thread.CurrentThread.CurrentCulture

+0

我明白了。那麼主應用程序線程總是默認爲en-US? – 2011-01-19 17:22:06

+0

不完全確定我懷疑它與區域設置位置或鍵盤語言有關 – 2011-01-20 13:35:58

3

所以根據Microsoft這種行爲是通過設計。您可以使用您的應用程序運行,但WPF結合PC的區域性設置不打算用來String.Format到工作方式:

裝訂器從未使用的CurrentCulture - 這是由設計,所以他們的行爲在所有機器和區域設置中都是可預測的。

但是,您可以指定轉換器應該使用的區域性。有兩種方法可以做到這一點:

  1. 集Binding.ConverterCulture。例如。 <TextBox Text="{Binding Birthday, ConverterCulture=de-DE}"/>
  2. 在目標元素上設置xml:lang(或等效語言)屬性。例如。 <TextBox xml:lang="de-DE" Text="{Binding Birthday}"/>

這似乎是你需要預先知道你所有的應用程序要運行在不同的文化。對於在美國之外有用戶的每個人來說,看起來好像有點廢話。