在xaml中设置为属性时,工具提示绑定的行为有何不同?

时间:2016-12-13 18:03:44

标签: c# wpf xaml

这是一个奇怪的问题,但更多的是我的理解而不是其他任何东西。我在按钮上设置了工具提示,如下所示

<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分割它们)我只是想知道是什么让它在两个实现之间表现不同,我认为这两个会有所不同彼此。

0 个答案:

没有答案