0

テキストボックスに検証エラーがある場合に表示される ControlTemplate を作成しました。私のコントロールテンプレートはそのように見えます

<ControlTemplate x:Key="TextBoxErrorTemplate">
  <TextBlock  Foreground="Orange" FontSize="12pt">Field can't be empty</TextBlock>
</ControlTemplate>

ただし、検証エラーが発生した場合、textBox に textBlock が表示され、ユーザーは適切な値を入力できません。エラー情報を表示する TextBlock の位置を設定する方法はありますか?

4

1 に答える 1

2

ErrorTemplates は、コントロールを装飾するためのものであり、その内部プロパティを変更するためのものではありません。これを行うには、それぞれのトリガーでスタイルを使用する必要があります。

            <Style TargetType="TextBox">
                <Style.Triggers>
                    <Trigger Property="Validation.HasError" Value="True">
                        <Setter Property="Foreground" Value="Orange"/>
                        <Setter Property="FontSize" Value="12"/>
                    </Trigger>
                </Style.Triggers>
            </Style>

テキストを表示したい場合は、次のようなテンプレートを使用できます。

    <ControlTemplate x:Key="TextBoxErrorTemplate">
        <StackPanel Orientation="Horizontal">
            <AdornedElementPlaceholder/>
            <TextBlock  Foreground="Orange" FontSize="12pt">Field can't be empty</TextBlock>
        </StackPanel>
    </ControlTemplate>

TextBlock は TextBox の右側に表示されます。

エラー メッセージを表示したいだけの場合は、TextBox のツールチップを設定し、それを検証エラーにバインドすることをお勧めします。

于 2011-01-31T21:55:58.790 に答える