您的位置:首页 > 其它

7.10 WPF 流水账 Tooltip自定义模版后不能显示内容的问题——ControlTemplate的秘密

2009-07-10 10:49 489 查看
ControlTemplate 是我使用最早的Template。昨天居然在小河沟里翻船了。

问题:

手写了一个ToolTip的Template,结果无论如何也显示不出内容,ToolTip不能用Snoop调,急死我了。

<Image Style="{StaticResource ImageStyle}" Stretch="Fill"

ToolTipService.InitialShowDelay="0"

ToolTipService.ShowDuration="10000"

>

<Image.Resources>

<Style x:Key="tooltip" TargetType="ToolTip">

<Setter Property="Template">

<Setter.Value>

<ControlTemplate >

<Border x:Name="grid1">

<ContentPresenter></ContentPresenter>

</Border>

</ControlTemplate>

</Setter.Value>

</Setter>

</Style>

</Image.Resources>

<Image.ToolTip>

<ToolTip x:Name="nametip" Style="{StaticResource tooltip}" >

<StackPanel>

<TextBlock x:Name="nickname" Text="{Binding Path=Name, Mode=OneWay}" />

</StackPanel>

</ToolTip>

</Image.ToolTip>

</Image>

简单得不能再简单了.可是文字偏偏怎么也显示不出来.

最后发现





模版定义中少了这样的语句.

分析原因:

模版的中定义内容显示的部分是<ContentPresenter/>。它会寻找控件Content的属性,如果不指定ControlTemplate的“TargetType”,他会将控件当做“Control”类型,但是Control没有Content属性,所以内容显示不出来。

结论:

在模版中是ContentPresenter的时候一定要指定ControlTemplate的TargetType属性。

疑惑:

既然ContentPresenter找不到Content属性为什么没有异常呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: