wpf 触发器设置ControlTemplate内的控件"时 无法识别

zmidl 2016-10-19 12:04:13
我给textbox 控件做个校验的模板 用TextBlock显示校验信息

<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<TextBlock x:Name="TextBlock1" ....


我又想 让鼠标进入textbox的时候显示这个信息 鼠标离开textbox的时候不显示校验信息, 所以我要通过 IsMouseOver 触发器 控制这个TextBlock1的Visibility属性于是
我在style 根节点设置一个triggers

<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="TextBlock1" Property="Visibility" Value="Visible"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="False">
<Setter TargetName="TextBlock1" Property="Visibility" Value="Collapsed"/>
</Trigger>
</Style.Triggers>

问题来了,我这个TextBlock1 是ControlTemplate 模板里的元素 无法识别到 要如何才能控制这个TextBlock1 的显示和隐藏呢?? 望懂的朋友指点一下谢谢。
...全文
761 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zmidl 2016-10-31
  • 打赏
  • 举报
回复
无法实现换方案了。
zmidl 2016-10-22
  • 打赏
  • 举报
回复
引用 2 楼 ylly11111 的回复:
TextBlock1的visibility绑定一个依赖属性,ismouseover时修改这个属性值
这个方法我试过了,编译无法通过,说是触发器识别不了这个自定义的依赖属性。
ylly11111 2016-10-20
  • 打赏
  • 举报
回复
TextBlock1的visibility绑定一个依赖属性,ismouseover时修改这个属性值
  • 打赏
  • 举报
回复
它们不属于同一个ControlTemplate,当然无法识别。既然是自定义,为什么不使用布局控件 wrapPanel把 它们放置到textbox的controlTemplate中呢??

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧