工具提示忽略指定的日期时间格式说明符

ToolTip ignores specified DateTime format specifier

我在 WPF 中遇到一个关于 ToolTips 的奇怪问题:

一、代码:

<TextBlock Text="{Binding SelectedItem.Approver.Timestamp, StringFormat='{}{0:g}'}"
           ToolTip="{Binding SelectedItem.Approver.Timestamp, StringFormat='{}{0:f}'}" />

如您所见,“g format specifier" (e. g. 2016-12-24 23:42) is used for the timestamp's display and "f format specifier”(例如 Saturday, 24. December 2016 23:42)的 ToolTip

然而,我得到的是:2016-12-24 23:42。换句话说:ToolTip 显示与 TextBlock.

完全相同的格式

TextBlock 切换为 "f format specifier" 时甚至更奇怪:ToolTip 只是保持 "g format specifier" 指定的格式。

那么,我有两个问题:
a) 为什么会这样?

b) 如何强制执行我想要的格式?

我认为语法不正确。

参见:

<TextBlock Text="{Binding SelectedItem.Approver.Timestamp, StringFormat={}{0:g}}"
           ToolTip="{Binding SelectedItem.Approver.Timestamp, StringFormat={}{0:f}}" />

我成功了。

<TextBlock Text="{Binding SelectedItem.Approver.Timestamp, StringFormat={}{0:g}}">
  <TextBlock.ToolTip>
    <ToolTip Content="{Binding SelectedItem.Approver.Timestamp}" ContentStringFormat="{}{0:f}" />
  </TextBlock.ToolTip>
</TextBlock>

由于 Tooltip 可以包含任何内容,我们应该使用它的 ContentStringFormat。