2011-01-31 15 views
0

テキストボックスに検証エラーがある場合に表示されるControlTemplateを作成しました。私のcontroltemplateはそのように見えるControlTemplateと検証 - アイテムの配置方法は?

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

しかし、検証エラーが発生した場合、textBlockがtextBoxに表示され、ユーザーは適切な値を入力できません。エラー情報を表示するTextBlockの位置を設定する方法はありますか?あなたには、いくつかのテキストを表示したい場合は、テンプレートを使用することができ

  <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> 

答えて

2

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

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

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

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

+0

このタグについて説明してください開始タグはありません。このタグを閉じるようです – lastOfMohicans

+0

http://msdn.microsoft.com/en-us/library/system.windows.controls.adornedelementplaceholder .aspx –

関連する問題