以下是代码:
string s1 = DateTime.Now.ToString("d");
string s2 = string.Format("{0:d}", DateTime.Now);
使用相同的格式在 XAML 中时,会导致 s1 和 s2 都具有正确的值 "30.06.2009"。
<TextBlock Text="{Binding Source={x:Static sys:DateTime.Now}, StringFormat=d}"/>
输出结果为“6/30/2009”。看起来,XAML StringFormat 忽略了当前的区域设置。这在 Vista 和 XP 上都发生了。
我不想指定自定义格式,因为输出应该按用户偏好的区域设置进行格式化。
有相同问题的人吗?这是 WPF 的一个 bug 吗?