So, I'm trying to show a message when the input is invalid, suppose I want something other than ToolTip , which remains until the error is fixed. I tried to have ErrorTemplate
<Style TargetType="{x:Type TextBox}"> <Setter Property="Validation.ErrorTemplate"> <Setter.Value> <ControlTemplate> <StackPanel> <Border BorderBrush="Red" BorderThickness="1"> <AdornedElementPlaceholder x:Name="adornedErrorElement" /> </Border> <Label Background="Red" Foreground="White" FontSize="9" Content="{Binding ElementName=adornedErrorElement, Path=AdornedElement.(Validation.Errors)[0].ErrorContent}" /> </StackPanel> </ControlTemplate> </Setter.Value> </Setter> </Style> <StackPanel Margin="20"> <TextBlock Text="Name" /> <TextBox Text="{Binding Name}" /> <TextBlock Text="Email" /> <TextBox Text="{Binding Path=Email, ValidatesOnDataErrors=True}" /> <Button Content="Submit" /> </StackPanel>
I get

Where the inscription imposes elements on it after it. How can I use it in such a way that it works exactly like another element on the stack?
UPDATE: using VSM
Now I want to take another step and animate the shortcut of errors up and down. I review VSM after @robertos answer. I tried to embed in Blend. A few problems that I encountered. I tried
<ControlTemplate TargetType="{x:Type TextBox}"> <StackPanel Orientation="Vertical"> <Microsoft_Windows_Themes:ListBoxChrome ...> <VisualStateManager.VisualStateGroups> ... </VisualStateManager.VisualStateGroups> <ScrollViewer ... /> </Microsoft_Windows_Themes:ListBoxChrome> <Label Content="Error Here" /> </StackPanel> </ControlTemplate>
Then I lost access to VisualStates in Blend. Then i tried
<Microsoft_Windows_Themes:ListBoxChrome> <StackPanel> <ScrollViewer x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="2,0,-2,0"/> <TextBlock x:Name="textBlock" Background="Red" Foreground="White" FontWeight="Bold" Text="Hello" Visibility="Collapsed" /> </StackPanel> </Microsoft_Windows_Themes:ListBoxChrome>
Not ideal as the StackPanel is inside the border. Also my animation attempts look just weird
http://screenr.com/byk
http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0 'width =' 560 'height =' 345 '> http: // screenr. com / Content / assets / screenr_1116090935.swf '> http://screenr.com/Content/assets/screenr_1116090935.swf' flashvars = 'i = 130553' allowFullScreen = 'true' width = '560' height = '345' pluginspage = ' http://www.macromedia.com/go/getflashplayer '>
1st. I have to make the shortcut hidden instead of minimizing the animated opacity only. I want the label to appear as its exit from the text box.
validation templates styles wpf
Jiew meng
source share