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>
我的 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>