我有一个ToggleButton,我想要一个工具提示,它显示与按钮相同的内容。我可以在按钮上成功设置工具提示以使用按钮的内容。 ToggleButton实例和ToolTip的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的Content属性。绑定按预期工作。当您开始使用该控件时,该按钮会显示其内容:
但是,当您将鼠标悬停在按钮上以激活工具提示时,工具提示会显示内容,而按钮会丢失其内容:
在其他时间使用应用程序中的控件时,按钮内容不会出现,但工具提示会继续按预期工作。
为什么会这样?我希望能够同时在两个地方显示内容。