Wpf 当我绑定工具提示时';将内容转换为父元素的内容,它将从父元素中取出内容

Wpf 当我绑定工具提示时';将内容转换为父元素的内容,它将从父元素中取出内容,wpf,xaml,Wpf,Xaml,我有一个ToggleButton,我希望它有一个工具提示,显示与按钮相同的内容。我可以成功设置按钮上的工具提示以使用按钮的内容。ToggleButton实例的XAML和工具提示如下: <ToggleButton Name="toggleButton" IsTabStop="False" Background="{TemplateBinding Background}" BorderBrush="{Tem

我有一个ToggleButton,我希望它有一个工具提示,显示与按钮相同的内容。我可以成功设置按钮上的工具提示以使用按钮的内容。ToggleButton实例的XAML和工具提示如下:

<ToggleButton Name="toggleButton" IsTabStop="False"
                      Background="{TemplateBinding Background}"
                      BorderBrush="{TemplateBinding BorderBrush}"
                      BorderThickness="{TemplateBinding BorderThickness}"
                      Template="{StaticResource MultiSelectComboBoxToggleButtonTemplate}"
                      IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsDropDownOpen, Mode=TwoWay}"
                      ToolTip="{Binding ElementName=toggleButton, Path=Content}"
                      >

按钮的模板如下所示:

<ControlTemplate x:Key="MultiSelectComboBoxToggleButtonTemplate" TargetType="{x:Type ToggleButton}">
    <Border BorderThickness="{TemplateBinding BorderThickness}"  
                Background="{TemplateBinding Background}" 
                BorderBrush="{TemplateBinding BorderBrush}"
                SnapsToDevicePixels="true">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>

            <ContentPresenter Content="{TemplateBinding Content}"/>

            <Border Name="arrowBorder" Grid.Column="1" Width="16" BorderBrush="{TemplateBinding BorderBrush}">
                <Path HorizontalAlignment="Center" VerticalAlignment="Center" 
                                  Fill="{TemplateBinding BorderBrush}" Data="M 0 0 L 7 0 L 3.5 4 Z" />
            </Border>
        </Grid>
    </Border>
    <ControlTemplate.Triggers>

        <Trigger Property="IsMouseOver" Value="True">
            <Setter TargetName="arrowBorder" Property="Background" Value="{StaticResource ActiveButtonBrush}" />
            <Setter TargetName="arrowBorder" Property="BorderThickness" Value="1,0,0,0" />                
        </Trigger>
        <Trigger Property="IsChecked" Value="True">
            <Setter TargetName="arrowBorder" Property="Background" Value="{StaticResource ActiveButtonBrush}" />
            <Setter TargetName="arrowBorder" Property="BorderThickness" Value="1,0,0,0" />
        </Trigger>
    </ControlTemplate.Triggers>
</ControlTemplate>

MyToolTip控件绑定到父ToggleButton的内容属性。绑定工作正常。当您开始使用控件时,按钮将按其应有的方式显示其内容:

但是,当您将鼠标悬停在按钮上以激活工具提示时,工具提示将显示内容,而按钮将丢失其内容:

在应用程序中使用控件的其余时间内,按钮内容不会显示,尽管工具提示仍按预期工作


为什么会发生这种情况?我希望能够同时在这两个位置显示内容。

发布完整的组合框模板。这很有趣,对于咯咯笑来说,如果你刚刚做了
ToolTip=“{Binding content,RelativeSource={RelativeSource Self}”
或者如果它只是显示文本,这将在TextBlock中呈现,只要
ToolTip=“{Binding Text,RelativeSource={RelativeSource Self}}”