如何为错误创建这样的类似模板?

时间:2012-01-24 19:29:21

标签: c# wpf validation idataerrorinfo

我在几个网站上看到过使用ErrorTemplate样式发布其应用程序的一些图像,如下所示:

enter image description here

你知道我在哪里可以找到它吗?

2 个答案:

答案 0 :(得分:5)

我只是鞭打了一下,稍微修改了一下但是它在我的WPF测试应用程序中运行(使用.Net 4.0)。对于我正在处理的应用程序,我实际上想要这样的东西,所以你的问题是一个方便的借口来制作一个。 =)

此代码使用Validation.ErrorTemplate附加属性创建ControlTemplate,设置红色边框以概述已验证的控件,然后创建包含控件错误消息的Popup 。我必须从经过验证的控件的ToolTip属性中获取错误消息,因为模板中的TextBox似乎无法访问Validation类本身。

当验证的控件失去焦点时,弹出错误消息将关闭,并在再次获得焦点时重新出现(如果有错误)。

这是一个截图: Screenshot

以下是要点代码:https://gist.github.com/1672789

我愿意接受任何人提出的任何意见或改进。

答案 1 :(得分:1)

这看起来很像Adorner。 这个想法是在控件上方/附近绘制一些东西,其中定义的内容也不会受到应用于场景的变换的影响。

例如,您可以在Style的{​​{1}}中定义装饰工具。

像这样的东西(伪代码):

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> ,但是ides是相同的)可以找到here