Wpf 工具提示和绑定到标签内容

Wpf Tooltip and Binding to Label Content

我的 wpf 应用程序上有很多这样的标签。

<Label Style="{StaticResource styleLabelTitle}">
        <TextBlock TextTrimming="CharacterEllipsis" Text="{localization:Translate geolocation_controls}">
        </TextBlock>
</Label>

我想添加一个工具提示以在省略号起作用时显示完整名称。所以我在标签样式中添加了工具提示。

<Style x:Key="styleLabelTitle" TargetType="Label" x:Shared="False">
        <Setter Property="Foreground" Value="{StaticResource brushTextsForeground}"></Setter>
        <Setter Property="FontWeight" Value="Bold"></Setter>
        <Setter Property="FontFamily" Value="Consolas"></Setter>
        <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Content}" />
</Style>

问题是我认为出现工具提示时正在更改文本块父级。所以文本只出现在工具提示中,并从原始标签中删除。 有什么想法吗?

提前致谢。

您只有文本块的一个实例,然后当您将它分配给工具提示时,内容会如您所说的那样丢失。

您应该将工具提示的值设置为非样式的翻译文本:

<Label Style="{StaticResource styleLabelTitle}" ToolTip="{localization:Translate geolocation_controls}">
   <TextBlock ...> 
</Label>

我终于找到了解决办法,做了一个新的样式。

<Style x:Key="styleLabelText" TargetType="{x:Type Label}"
     x:Shared="False">
    <Setter Property="Foreground" Value="{StaticResource brushTextsForeground}"></Setter>
    <Setter Property="FontWeight" Value="Normal"></Setter>
    <Setter Property="FontFamily" Value="Consolas"></Setter>
    <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Content}" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Label}">
                <TextBlock HorizontalAlignment="Center"    VerticalAlignment="Center" TextTrimming="CharacterEllipsis"
                        Text="{TemplateBinding Content}" />
            </ControlTemplate>
        </Setter.Value>
    </Setter> </Style>