ErrorTemplates 用于装饰控件而不是更改其内部属性,为此您应该使用带有相应触发器的样式:
<Style TargetType="TextBox">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="Foreground" Value="Orange"/>
<Setter Property="FontSize" Value="12"/>
</Trigger>
</Style.Triggers>
</Style>
如果你想显示一些文本,你可以使用这样的模板:
<ControlTemplate x:Key="TextBoxErrorTemplate">
<StackPanel Orientation="Horizontal">
<AdornedElementPlaceholder/>
<TextBlock Foreground="Orange" FontSize="12pt">Field can't be empty</TextBlock>
</StackPanel>
</ControlTemplate>
TextBlock 将显示在 TextBox 的右侧。
如果您只想显示错误消息,建议您设置 TextBox 的工具提示并将其绑定到验证错误。