在C#wpf中围绕TextBox添加弹出边框动画

时间:2011-07-28 22:13:14

标签: c# wpf textbox

我目前正在开发WPF应用程序。当用户提交表单时,我有一个检查以确保填写字段的方法以及我想要做的是,如果不是,则在框中显示一个红色到白色的渐变作为动画淡入淡出。 / p>

这可能吗?

2 个答案:

答案 0 :(得分:0)

在绑定中使用验证,然后将验证错误模板分配给TextBox。这是一个红色矩形:

<ControlTemplate x:Key="errorTemplate">
    <Canvas Width="{Binding Path=AdornedElement.ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Adorner}}}" 
            Height="{Binding Path=AdornedElement.ActualHeight, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Adorner}}}">
        <Border BorderBrush="Red" BorderThickness="1" >
            <AdornedElementPlaceholder/>
        </Border>
    </Canvas>
</ControlTemplate>

将此添加到绑定:Validation.ErrorTemplate =“{StaticResource errorTemplate}

答案 1 :(得分:0)

您可以使用样式并使用数据触发器来实现此目的。这样,当您的文本框为空时,您将看到红色边框和浅红色背景。请参阅以下示例代码:

   

<Style x:Key="RequiredField" TargetType="{x:Type TextBox}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Text}" Value="">               
            <Setter Property="TextBox.BorderBrush" Value="{StaticResource MySolidBrush}" />            
            <Setter Property="TextBox.Background" Value="{StaticResource MyInnerBrush}"/>               
            <Setter Property="TextBox.ToolTip" Value="This Field is Mandatory"/>
        </DataTrigger>
    </Style.Triggers>
</Style>