0

只是制作一个 WPF 桌面应用程序。我正在使用各种验证。在 TextBox 中,如果我使用,NotifyOnValidationError=True,ValidatesOnDataErrors=True,ValidatesOnExceptions=True 它工作正常。但是在 TextBlock 中,如果我使用相同的东西,整个块都会用红色符号突出显示......我只想要一个 excla。(!)标记NotifyOnValidationError=True,ValidatesOnDataErrors=True,ValidatesOnExceptions=True... 我应该怎么办 ?

4

1 回答 1

1

如果您想覆盖在 Validation 类中定义的默认错误模板,您可以简单地定义一个 ControlTemplate 并将其分配给 TextBlockValidation.ErrorTemplate附加属性。

<TextBlock
Validation.ErrorTemplate="{StaticResource TextBlockErrorTemplate}">     
<TextBlock>

在资源字典中,您可以定义一个错误模板,如下所示:

 <ControlTemplate x:Key="TextBlockErrorTemplate">
            <DockPanel LastChildFill="True">
                <TextBlock DockPanel.Dock="Right"
                           Foreground="Red"
                           FontSize="14pt"
                           Margin="-15,0,0,0"
                           FontWeight="Bold">!
                </TextBlock>
                <AdornedElementPlaceholder Name="controlWithError" />
            </DockPanel>
        </ControlTemplate>
于 2012-06-22T02:47:05.070 回答