【发布时间】:2016-12-08 09:58:42
【问题描述】:
我在 WPF 中遇到一个关于 ToolTips 的奇怪问题:
首先,代码:
<TextBlock Text="{Binding SelectedItem.Approver.Timestamp, StringFormat='{}{0:g}'}"
ToolTip="{Binding SelectedItem.Approver.Timestamp, StringFormat='{}{0:f}'}" />
如您所见,“g format specifier”(例如2016-12-24 23:42)用于时间戳的显示,“f format specifier”(例如Saturday, 24. December 2016 23:42)用于其ToolTip。
但是,我得到的是:2016-12-24 23:42。换句话说:ToolTip 显示的格式与TextBlock 完全相同。
当将TextBlock 切换为“f 格式说明符”时,它也变得更加奇怪:ToolTip 只是停留在“g 格式说明符”指定的格式中。
那么,我有两个问题:
a) 为什么会这样?
以及
b) 如何强制执行我想要的格式?
【问题讨论】:
-
我不熟悉 WPF 但我有几个问题:1) 因为这些是标准格式,所以不是
StringFormat=g和StringFormat=g够吗? 2) 你不能使用自定义的日期和时间格式来代替StringFormat=yyyy-MM-dd HH:mm和StringFormat=dddd, dd. MMMM yyyy HH:mm吗? 3) 用于格式化的文化不是sq-AL,不是吗?由于g和f格式说明符生成相同的结果,因为此区域性对于LongDatePattern和ShortDatePattern属性具有相同 值。 -
关于你的问题:1):不,你可以看到here。 2):我不想对 .NET 中已经内置的东西进行自定义硬编码。 3):不,不是。然而,还有其他几个
Cultures 被使用,例如。 G。de-DE。但最重要的是:f和g会产生不同的输出。
标签: c# wpf datetime tooltip format-specifiers