我有以下样式来验证我的控件中的输入:
<Style x:Key="MyErrorTemplate" TargetType="Control">
<Style.Setters>
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate x:Name="ControlErrorTemplate">
<StackPanel Orientation="Vertical" Height="Auto">
<StackPanel Orientation="Horizontal">
<TextBlock Foreground="Red" FontSize="20">!</TextBlock>
<AdornedElementPlaceholder x:Name="Holder"/>
</StackPanel>
<Label Foreground="Red" Content="{Binding ElementName=Holder,
Path=AdornedElement.(Validation.Errors)[0].ErrorContent}"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style.Setters>
</Style>
如果发生错误,标签中的错误消息会出现在控件下方(例如文本框)并与下方控件重叠。我制作了 StackPanel 的 Height="Auto",但没有帮助。每个控件都在一个 Grid 单元格中,并且 Grid 的行高也是 Auto。你能告诉我我错过了什么吗?我希望错误消息将下面的内容向下推。谢谢。