尝试这个:
<TextBlock Text="{Binding PropertyPath, StringFormat=d}" />
这是文化敏感的,需要 .NET 3.5 SP1 或更高版本。
注意:这区分大小写。 “d”是短日期格式说明符 http://msdn.microsoft.com/en-us/library/az4se3k1.aspx#ShortDate而“D”是长日期格式说明符 http://msdn.microsoft.com/en-us/library/az4se3k1.aspx#LongDate.
上有完整的字符串格式列表有关标准日期和时间格式字符串的 MSDN 页面 http://msdn.microsoft.com/en-us/library/az4se3k1.aspx以及对所有选项的更全面的解释这篇 MSDN 博客文章 http://blogs.msdn.com/b/vsdata/archive/2009/07/07/customize-format-of-datetime-string-in-wpf-and-winform-data-binding.aspx
然而,这有一个问题 - 它总是以美国格式输出日期,除非您自己将区域性设置为正确的值。
如果不设置此属性,绑定引擎将使用Language绑定目标对象的属性。在 XAML 中,该值默认为“en-US”,或者从页面的根元素(或任何元素)继承该值(如果已显式设置)。
Source http://msdn.microsoft.com/en-us/library/system.windows.data.binding.converterculture(v=vs.110).aspx
执行此操作的一种方法是在后面的代码中(假设您已将线程的区域性设置为正确的值):
this.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
另一种方法是在绑定中设置转换器区域性:
<TextBlock Text="{Binding PropertyPath, StringFormat=d, ConverterCulture=en-GB}" />
尽管这不允许您本地化输出。