我有以下樣式在我的控制驗證輸入:WPF的ControlTemplate身高
<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的高度=「自動」,但它沒有幫助。每個控件位於一個網格單元格中,並且網格的行高也是自動的。 你能告訴我我錯過了什麼嗎?我想要錯誤消息推動下面的內容。 謝謝。
謝謝您的回答。這是否意味着沒有什麼可以做,使其表現得如我所願? –
我認爲你必須將你的標籤移動到裝飾元素層(在你的控制下),並用[Validation.HasError Attached Property](http://msdn.microsoft.com/en-us/library/system)觸發它的可見性。 windows.controls.validation.haserror.aspx)和一個BooleanToVisibilityConverter。 – LPL
非常感謝。 –