HTML 为什么当我为工具提示定义样式时会看到类名工具提示
问题描述
我为工具提示创建了一个样式。这是样式:
<Style TargetType="ToolTip" x:Key="ToolTipDefaultStyle">
<Setter Property="ToolTipService.ShowOnDisabled" Value="true"/>
<Setter Property="ToolTipService.InitialShowDelay" Value="{StaticResource TooltipInitialShowDelay}"/>
<Setter Property="ToolTipService.ShowDuration" Value="{StaticResource TooltipDisplayTime}"/>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=ToolTip}}" TextWrapping='Wrap'
Margin="10"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
这是我在一个控件中使用它:
<StackPanel ToolTip="{Binding MyViewModelProperty}">
..........
<StackPanel.Resources>
<Style TargetType="ToolTip" BasedOn="{StaticResource ToolTipDefaultStyle}"/>
</StackPanel.Resources>
</StackPanel>
问题在于,工具提示,在开始时显示的是这个文本:“System.Windows.Controls.ToolTip”。之后,它会显示我想要显示的文本。
如何避免显示这个初始文本呢?
我想要的是为应用程序中的所有控件定义一个样式。
解决方案
ToolTip
控件是一个ContentControl
。ContentTemplate
的DataContext
将成为Content
属性。
所以你只需要将TextBlock
的绑定改为:
<TextBlock
Margin="10"
Text="{Binding}"
TextWrapping="Wrap" />