【发布时间】:2012-06-18 21:13:08
【问题描述】:
由于所有关于花式、超级、巨大和等等、等等、等等、工具提示的噪音,我找不到答案。
我只需要一个简单的 style 来设置TextWrapping="Wrap" 并允许我设置宽度。
一个复制现有/默认样式,但只是自动换行。
【问题讨论】:
由于所有关于花式、超级、巨大和等等、等等、等等、工具提示的噪音,我找不到答案。
我只需要一个简单的 style 来设置TextWrapping="Wrap" 并允许我设置宽度。
一个复制现有/默认样式,但只是自动换行。
【问题讨论】:
<Window.Resources>
<Style TargetType="{x:Type ToolTip}">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock TextWrapping="Wrap" Text="{Binding}" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Rectangle Width="100" Height="100" Fill="Red">
<Rectangle.ToolTip>
<ToolTip Width="100">
This is some text with text wrapping.
</ToolTip>
</Rectangle.ToolTip>
</Rectangle>
</Grid>
此示例假设您希望能够根据使用情况设置宽度。如果要将其设置为样式的一部分,请将其添加到 TextBlock 元素中。
【讨论】:
此样式可防止在空字符串上弹出工具提示。
<Style TargetType="ToolTip">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToolTip">
<TextBlock Text="{TemplateBinding Content}"
MaxWidth="400"
TextWrapping="Wrap"/>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Content" Value="">
<Setter Property="Visibility" Value="Collapsed" />
</Trigger>
</Style.Triggers>
</Style>
或使用 ContentTemplate:
<Style TargetType="{x:Type ToolTip}">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding}"
MaxWidth="400"
TextWrapping='Wrap' />
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Content" Value="">
<Setter Property="Visibility" Value="Collapsed" />
</Trigger>
</Style.Triggers>
</Style>
【讨论】:
如果您只想获得以下效果,请阅读this post。
【讨论】: