您的位置:首页 > 其它

[WPF]在Style中设置ToolTip的问题分析

2009-01-15 16:49 489 查看
刚才开到智者千虑发的【WPF】在Style中设置ToolTip的问题的博文,虽然最终给了一个暂时解决问题的方案,但是没有分析和解释其中的问题,正与他所说:但至于为什么不能直接在Setter.Value中放置TextBlock还是一个未解之谜。

趁着中午间隙,跟踪了一下,这里我将带给你完整的分析。

为了描述问题,首先,给出问题的xaml,当然,你也可以去智者千虑的blog查看详细描述。

<TextBlock x:Name="textBlockContainer" Text="ABC" Margin="10">
<!--如下的写法没有问题-->
<!--<ToolTipService.ToolTip>
<TextBlock
Text="// 通过绑定等方式从某地方获取文本"
TextWrapping="Wrap"
Width="70" />
</ToolTipService.ToolTip>-->

<!--使用Style为ToolTip赋值,出错!将会抛出exception-->
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="ToolTipService.ToolTip">
<Setter.Value>
<TextBlock x:Name="tooltipBlock"
Text="// 通过绑定等方式从某地方获取文本"
TextWrapping="Wrap"
Width="70" />
</Setter.Value>
</Setter>
</Style>
</TextBlock.Style>
</TextBlock>
其中异常的信息为:

<TextBlock x:Name="textBlockContainer" Text="ABC" Margin="10">
<TextBlock.Resources>
<TextBlock x:Key="toolTipBlock"
Text="// 通过绑定等方式从某地方获取文本"
TextWrapping="Wrap"
Width="70" />
</TextBlock.Resources>
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter
Property="ToolTipService.ToolTip"
Value="{StaticResource toolTipBlock}"/>
</Style>
</TextBlock.Style>
</TextBlock>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: