在我的Silverlight 4应用程序中,我有一些很长的工具提示。默认情况下,这些工具提示显示为一条非常长的行。例如:
<TextBox Text="Test1"
ToolTipService.ToolTip="One tasdg asdg as da sdg asdg asdg asdg asd gas dg a sdg a sdg a sd a sd g asdasdgasdg sadgasdgasdg asdg asdg asd as a sd g a sdg asd g asd g asd g asdgasdg asdgasdg"/>
我想要做的是让工具提示环绕以显示在多行上。实现此目的的一种方法是使用TextBlock定义工具提示。例如:
<TextBox Text="Test2">
<ToolTipService.ToolTip>
<TextBlock TextWrapping="Wrap" Width="200" Text="One tasdg asdg as da sdg asdg asdg asdg asd gas dg a sdg a sdg a sd a sd g asdasdgasdg sadgasdgasdg asdg asdg asd as a sd g a sdg asd g asd g asd g asdgasdg asdgasdg"/>
</ToolTipService.ToolTip>
</TextBox>
对于我想要定义工具提示的每个控件,必须执行此操作似乎需要做很多额外的工作。理想情况下,我想要做的是将工具提示定义为类似于第一个示例的字符串,然后将样式全局应用于所有工具提示,这将使工具提示环绕。所以在我的App.xaml中,我会定义这样的东西:
<Style TargetType="ToolTip">
<!-- Somehow make all tooltips wrap at a width of 200 -->
</Style>
关于如何做到这一点的任何建议?
答案 0 :(得分:14)
您可以为工具提示创建隐式样式,并将内容模板设置为适当的 - 例如
<Style TargetType="ToolTip">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock TextWrapping="Wrap" Width="200" Text="{Binding}" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
然后你可以使用类似的东西:
<TextBox Text="Test2" ToolTipService.ToolTip="abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg abcdefg " />