WPF 控件模板高度

标签 wpf errortemplate

我有以下样式来验证控件中的输入:

<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。 你能告诉我我缺少什么吗?我希望错误消息能够将下面的内容推下去。 谢谢。

最佳答案

Validation.ErrorTemplate显示装饰层上的错误反馈。这意味着当布局系统在装饰元素层上测量和排列控件时,将不会考虑此模板中的所有控件。

关于WPF 控件模板高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11250107/

相关文章:

c# - ListView的集合中多个IsSelected

c# - 将动态数据绑定(bind)到 rowdetails 模板内的 wpf datagrid

复合控件中的 WPF TabIndex

wpf - 访问 AdornedElementPlaceholder 上的属性的 Validation.ErrorTemplate

c# - WPF 中的验证错误样式,类似于 Silverlight

c# - 页面内的控件未显示错误模板

wpf - 在 MVVM 中为 WPF 实现一个简单的 Master-Detail 场景

c# - 从 Outlook 电子邮件中获取正文 [Drag'and'Drop]

wpf - 带有验证的文本框在选项卡更改时丢失 ErrorTemplate

c# - 带有代码的错误模板的文本框