ToolTip忽略指定的DateTime格式说明符

时间:2016-12-08 09:58:42

标签: c# wpf datetime tooltip format-specifiers

我正在努力解决WPF中ToolTip的一个奇怪问题:

首先,代码:

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

如您所见,&#34; g format specifier&#34; (例如2016-12-24 23:42)用于时间戳的显示和&#34; f format specifier&#34; (例如Saturday, 24. December 2016 23:42)其ToolTip

然而,我得到的是:2016-12-24 23:42。换句话说:ToolTip显示的格式与TextBlock完全相同。

TextBlock切换到&#34; f格式说明符&#34;时,它变得更奇怪:ToolTip只保留&#34; g格式指定的格式符&#34;

所以,我有两个问题:
a)为什么?

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

2 个答案:

答案 0 :(得分:1)

我得到了它的工作。

<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。

答案 1 :(得分:0)

我认为语法不正确。

请参阅:

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