不要显示TextBox的Validation.ErrorTemplate

时间:2015-11-30 06:35:30

标签: wpf styles

我为应用程序添加主题。

我为textbox设置了样式,并为它设置了Validation.ErrorTemplate。

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
验证模板中的

<Setter Property="Validation.ErrorTemplate" Value="{StaticResource TextBoxValidationToolTipTemplate}"

当我删除TextBox样式的Validation.ErrorTemplate时,它会显示默认验证。但是,当我使用模板时,不显示验证。

修改

我使用this来设置Validation.ErrorTemplate

1 个答案:

答案 0 :(得分:1)

这是一些在我看来可以帮助你的事情; 尝试在ControlTemplate中使用AdornedElementPlaceholder,它之前帮助了我。这是我的ControlTemplate示例(工具提示将显示错误)。

        <Style TargetType="{x:Type TextBox}">
        <Setter Property="Validation.ErrorTemplate">
            <Setter.Value>
                <ControlTemplate>
                    <DockPanel>
                        <Grid DockPanel.Dock="Right" Width="16" Height="16" VerticalAlignment="Center" Margin="3 0 0 0">
                            <Ellipse Width="16" Height="16" Fill="Red" ToolTip="{Binding ElementName=AdornedElementPlaceholder, Path=AdornedElement.(Validation.Errors).CurrentItem.ErrorContent}"/>
                            <Ellipse Width="3" Height="8" VerticalAlignment="Top" HorizontalAlignment="Center" Margin="0 2 0 0" Fill="White"/>
                            <Ellipse Width="2" Height="2" VerticalAlignment="Bottom" HorizontalAlignment="Center" Margin="0 0 0 2" Fill="White"/>
                        </Grid>
                        <Border BorderBrush="Red" BorderThickness="2" CornerRadius="2">
                            <AdornedElementPlaceholder x:Name="AdornedElementPlaceholder"/>
                        </Border>
                    </DockPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

此致