WPF中的常用工具提示样式

时间:2013-06-21 06:28:12

标签: wpf wpf-controls tooltip

我可以制作工具提示样式,可以应用于每个控件的所有工具提示。

我试过了。

<Style TargetType="{x:Type ToolTip}" >
        <Setter Property="OverridesDefaultStyle" Value="true" />
        <Setter Property="HasDropShadow" Value="True" />
        <Setter Property="Foreground" Value="White" />
        <Setter Property="FontSize" Value="12" />
        <Setter Property="Placement" Value="Bottom" />
        <Setter Property="VerticalOffset" Value="0" />
        <Setter Property="Padding" Value="8" />

        <Setter Property="HorizontalContentAlignment" Value="Center" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ToolTip}" >
                    <StackPanel Margin="7,1" >
                      <Border Background="#FFF7F7CC" CornerRadius="1" >
                            <TextBlock Margin="1" Foreground="Black" HorizontalAlignment="Center" VerticalAlignment="Top" Text="{TemplateBinding ToolTip}"/>
                        </Border>
                    </StackPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

对于使用此样式,我必须在控件中放置一个单独的Tooltip标记,例如将工具提示应用于边框,

<Border>
    <Border.ToolTip>
          <ToolTip ToolTip="This is tooltip text"  />
    </Border.ToolTip>
........
.........
</Border>

但是有没有办法将tooltipstyle应用于所有控件,同时使用相同标签中提到的工具提示。 例如。

<Border BorderBrush="Transparent" Background="Transparent" Cursor="Help" ToolTip="This is Tooltip" >
.....
.....
</Border>

如果需要进一步的详细信息,请与我们联系。 谢谢预期。

1 个答案:

答案 0 :(得分:3)

是的,你的方法会奏效。但是控制模板需要进行一些小改动。将TextBlock替换为ContentPresenter。

                <ControlTemplate TargetType="{x:Type ToolTip}" >
                    <StackPanel Margin="7,1" >
                        <Border Background="#FFF7F7CC" CornerRadius="1" >
                        <ContentPresenter Margin="1" HorizontalAlignment="Center" VerticalAlignment="Top" />
                        </Border>
                    </StackPanel>
                </ControlTemplate>