我想在WPF中使用Short Date命名的字符串格式。WPF綁定StringFormat短日期字符串
我想是這樣的:
<TextBlock Text="{Binding Date, StringFormat='Short Date'}" />
如何做到這一點?
我想在WPF中使用Short Date命名的字符串格式。WPF綁定StringFormat短日期字符串
我想是這樣的:
<TextBlock Text="{Binding Date, StringFormat='Short Date'}" />
如何做到這一點?
試試這個:
<TextBlock Text="{Binding PropertyPath, StringFormat=d}" />
這是文化敏感,需要.NET 3.5 SP1或更高版本。
注意:這是區分大小寫的。 「d」是short date format specifier,而「D」是long date format specifier。
有字符串格式對MSDN page on Standard Date and Time Format Strings的完整列表和所有選項上this MSDN blog post
然而一個更全面的解釋,有一個疑難雜症與本 - 除非你設置的文化總是輸出日期以美國格式以正確的價值自己。
如果不設置該屬性,綁定引擎使用結合目標對象的語言財產。在XAML中,默認爲「en-US」,或者從頁面的根元素(或任何元素)繼承該值(如果已明確設置)。要做到這一點
的一種方法是在後面的代碼(假設你已經設置線程的文化,正確的值):
this.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
的另一種方式是設置綁定中的轉換器文化:
<TextBlock Text="{Binding PropertyPath, StringFormat=d, ConverterCulture=en-GB}" />
雖然這不允許您本地化輸出。
只需使用:
<TextBlock Text="{Binding Date, StringFormat=\{0:d\}}" />
使用StringFormat
財產(或ContentStringFormat
ContentControl
及其派生物,例如Label
)。
<TextBlock Text="{Binding Date, StringFormat={}{0:d}}" />
注意{}
標準String.Format
位置參數表示法允許撐杆在標記擴展語言逸出之前。
或者使用一個英語(或者自定義混淆了)格式:
StringFormat='{}{0:dd/MM/yyyy}'
如果你想添加一個字符串值中使用這樣的:
<TextBlock Text="{Binding Date, StringFormat= 'Date : {0:d}'}" />
某些日期時間的StringFormat樣本我發現有用。從C# Examples
DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123);
String.Format("{0:y yy yyy yyyy}", dt); // "8 08 008 2008" year
String.Format("{0:M MM MMM MMMM}", dt); // "3 03 Mar March" month
String.Format("{0:d dd ddd dddd}", dt); // "9 09 Sun Sunday" day
String.Format("{0:h hh H HH}", dt); // "4 04 16 16" hour 12/24
String.Format("{0:m mm}", dt); // "5 05" minute
String.Format("{0:s ss}", dt); // "7 07" second
String.Format("{0:f ff fff ffff}", dt); // "1 12 123 1230" sec.fraction
String.Format("{0:F FF FFF FFFF}", dt); // "1 12 123 123" without zeroes
String.Format("{0:t tt}", dt); // "P PM" A.M. or P.M.
String.Format("{0:z zz zzz}", dt); // "-6 -06 -06:00" time zone
謝謝!你說對了!當我問我什麼是短日期字符串格式時,我可以在哪裏找到字符串格式列表,並且我喜歡你用StringFormat = d來回答。非常清晰和完整。 – Tony 2011-02-18 23:21:07
這是否總是輸出美國格式,無論文化設置? – CRice 2014-08-22 06:14:31
@CRICE - 是的 - 出於某種原因 - 你已經設定了自己的文化。 – ChrisF 2014-08-22 07:42:10