ControlTemplate 和验证 - 如何定位项目?
我创建了 ControlTemplate,如果我的文本框上存在验证错误,则会显示该模板。我的控件模板看起来像这样,
<ControlTemplate x:Key="TextBoxErrorTemplate">
<TextBlock Foreground="Orange" FontSize="12pt">Field can't be empty</TextBlock>
</ControlTemplate>
但是如果发生验证错误,textBlock 会出现在文本框上 - 并且用户无法输入正确的值。有没有办法设置 TextBlock 的位置 - 显示错误信息的位置?
I created ControlTemplate which is shown if there are validation error on my textbox. My controltemplate looks like that
<ControlTemplate x:Key="TextBoxErrorTemplate">
<TextBlock Foreground="Orange" FontSize="12pt">Field can't be empty</TextBlock>
</ControlTemplate>
However if validation errors occure textBlock appears on textBox - and the user can't enter proper value. Is there any way to set the position of TextBlock - the one which shows error info?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ErrorTemplates 用于装饰控件,而不是用于更改其内部属性,为此,您应该使用带有相应触发器的样式:
如果您想显示一些文本,您可以使用如下模板:
TextBlock 将显示在右侧的文本框。
如果您只想显示错误消息,我建议您设置文本框的工具提示并将其绑定到验证错误。
ErrorTemplates are for adorning the control and not for changing its internal properties, to do this you should use a style with the respective trigger:
If you want to display some text you could use a template like this:
The TextBlock will be displayed on the right of the TextBox.
If you just want to show error messages i'd suggest you set the tooltip of the TextBox and bind it to the validation errors.