我在几个网站上看到使用 ErrorTemplate 的样式发布他们的应用程序的一些图像,如下所示:
你知道我在哪里可以找到它吗?
我刚刚做了一个,做了一些修改,但它可以在我的 WPF 测试应用程序中工作(使用 .Net 4.0)。对于我正在开发的应用程序,我实际上想要这样的东西,所以你的问题是一个方便的借口。=)
此代码使用Validation.ErrorTemplate
附加属性创建一个ControlTemplate
设置红色边框以勾勒出已验证控件的轮廓,然后创建一个Popup
包含该控件的错误消息的一个。我必须从经过验证的控件的ToolTip
属性中获取错误消息,因为TextBox
模板内部似乎无法访问Validation
类本身。
当验证的控件失去焦点时弹出错误消息关闭,并在再次获得焦点时重新出现(如果有错误)。
这是一个屏幕截图:
这是要点代码:https ://gist.github.com/1672789
我愿意接受任何人提出的任何意见或改进。
这看起来很像Adorner。这个想法是在控件上方/附近绘制一些东西,该控件定义的位置也不受应用于场景的变换的影响。
例如,您可以Style
在TextBox
.
像这样的东西(伪代码):
<Style TargetType="{x:Type TextBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollViewer}">
........
........
<AdornerDecorator Grid.Column="0" Grid.Row="0">
.........
.........
</AdorenrDecorator>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
一个完整的例子(对于ScrollViewer
,但ide是一样的)可以在 这里找到