这是一个奇怪的问题,但更多的是我的理解而不是其他任何东西。我在按钮上设置了工具提示,如下所示
<ContentControl MouseDown="ContentControl_MouseDown" ToolTipService.InitialShowDelay="10000" x:Name="contentControl1" ToolTip="{Binding Text}" >
<Button Focusable="True" x:Name="Btn1" Command="{Binding CommandToExecute}" Tag="{Binding Text}" Foreground="{x:Null}" Style="{DynamicResource ButtonStyle}" ToolTipService.ShowOnDisabled="true">
<shellModule:AutoGreyableImage Source="{Binding Image}" />
</Button>
</ContentControl>
在后台有以下内容。
private void ContentControl_MouseDown(object sender, MouseButtonEventArgs e)
{
if (contentControl1.ToolTip != null)
{
if (contentControl1.ToolTip is ToolTip)
{
var castToolTip = (ToolTip)contentControl1.ToolTip;
castToolTip.IsOpen = true;
}
else
{
toolTip.Content = contentControl1.ToolTip;
toolTip.IsOpen = true;
}
}
Timer.Start();
}
此工具提示完美无缺,并按预期绑定。但是,如果我改为声明这样的工具提示。
<ContentControl MouseDown="ContentControl_MouseDown" ToolTipService.InitialShowDelay="10000" x:Name="contentControl1" >
<ContentControl.ToolTip>
<ToolTip Content="{Binding Path=Text}" />
</ContentControl.ToolTip>
<Button Focusable="True" x:Name="Btn1" Command="{Binding CommandToExecute}" Tag="{Binding Text}" Foreground="{x:Null}" Style="{DynamicResource ButtonStyle}" ToolTipService.ShowOnDisabled="true">
<shellModule:AutoGreyableImage Source="{Binding Image}" />
</Button>
</ContentControl>
绑定不再有效。现在它并不重要,因为它已经做了我现在需要它做的事情。 (所有这个工具提示都会显示字符串,我假设我仍然可以用/ n分割它们)我只是想知道是什么让它在两个实现之间表现不同,我认为这两个会有所不同彼此。