4

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

在此处输入图像描述

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

4

2 回答 2

5

我刚刚做了一个,做了一些修改,但它可以在我的 WPF 测试应用程序中工作(使用 .Net 4.0)。对于我正在开发的应用程序,我实际上想要这样的东西,所以你的问题是一个方便的借口。=)

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

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

这是一个屏幕截图: 截屏

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

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

于 2012-01-24T21:29:02.767 回答
1

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

例如,您可以StyleTextBox.

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

<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是一样的)可以在 这里找到

于 2012-01-24T19:48:37.187 回答