Silverlight 为基本应用提供ToolTipService.ToolTip
。
但是,我想通过这样的方式自定义Template
的{{1}}:
ToolTip
我希望<TextBlock Text="Hello" >
<ToolTipService.ToolTip>
<TextBlock Text="I can help you." /> <!--replace this with my template-->
</ToolTipService.ToolTip>
</TextBlock>
的{{1}}或Content
属性能够从Style
动态设置。
有这样的效果:
ToolTip
答案 0 :(得分:11)
您无法以您想要的方式使用Style属性。 ToolTipService.ToolTip
属性是附加属性。您不能使用Style资源为附加属性赋值。
但是,您可以使用Style资源设置ToolTip
元素的样式。因此,您的TextBlock
可能如下所示: -
<TextBlock Text="{Binding SomeProperty}">
<ToolTipService.ToolTip>
<ToolTip Style="{StaticResource TipHelp}" />
</ToolTipService.ToolTip>
</TextBlock>
现在在您的容器资源中,您可以使用如下样式: -
<Style x:Key="TipHelp" TargetType="ToolTip">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<TextBlock Text="{Binding SomeOtherProperty}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
现在,您可以使用适当的Binding对象自定义ControlTemplate
所需的ToolTip外观。
答案 1 :(得分:1)
有人遇到同样的问题,并在CodePlex中做了一个很好的项目。
有了这个,您甚至可以绑定ToolTip
文本(这对我来说是一个showstopper,因为我通过绑定使用本地化)。
以下是链接:link text
工作真的很棒。