垂直 StackPanel の TextBox 要素の検証エラーの表示方法に問題があります。TextBox の下にエラー メッセージを表示しようとしています。
私はこのエラーテンプレートを持っています:
<Style TargetType="{x:Type TextBox}">
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<StackPanel>
<AdornedElementPlaceholder />
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding (ValidationError.ErrorContent)}" Foreground="Red" Margin="5"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
TextBox の下に十分な空白がある場合、エラーは正常に表示されますが、StackPanel (たとえば) では、アドナー層のために、エラー メッセージがある場合に余分なマージンやパディングが追加されません。
このソースによると、そうであると予想されます。
Validation.ErrorTemplate は装飾層に表示されることに注意してください。装飾層の要素は、残りの視覚要素の上にレンダリングされ、レイアウト システムが装飾された要素層のコントロールを測定および配置するときに考慮されません。
StackPanel の他の要素の上に表示されないように、検証エラー メッセージを表示するにはどうすればよいですか?