コントロールの入力を検証するための次のスタイルがあります。
<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"を作成しましたが、役に立ちませんでした。各コントロールはグリッドセルにあり、グリッドの行の高さも自動です。私が欠けているものを教えてください。エラーメッセージで下にあるものをプッシュしたい。ありがとう。