WPF,两个文本框,一个触发器,一个动画?

时间:2010-11-25 14:50:09

标签: wpf

我有一个窗口,其中有两个文本框位于网格中。网格包含一个触发器,当任一文本框中的文本发生更改时,该触发器将触发动画。问题。我希望更新的文本框受到动画的影响,目前我必须将StoryBoard.TargetName设置为文本框的名称才能使其正常工作。

这是一个片段:

<Window x:Class="WpfApp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="229" Width="413"
<Grid Width="395" Height="185">
    <Grid.Triggers>
        <EventTrigger RoutedEvent="TextBox.TextChanged">
            <BeginStoryboard>
                <Storyboard>
                    <ColorAnimation AutoReverse="False" Duration="0:0:1" From="Orange" To="White"
                    Storyboard.TargetName="txtBox1" AccelerationRatio="1" 
                    Storyboard.TargetProperty="(TextBox.Background).(SolidColorBrush.Color)"
                     FillBehavior="HoldEnd">
                    </ColorAnimation>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Grid.Triggers>
    <TextBox x:Name="txtBox1" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"  HorizontalAlignment="Left" Margin="8,128,0,33" Width="378" FontFamily="Consolas" Text="{Binding Path=Output}" Height="23" />
    <TextBox Height="23" HorizontalAlignment="Left" Margin="8,150,0,0" Name="textBox1" VerticalAlignment="Top" Width="378" />
</Grid>

谢谢

2 个答案:

答案 0 :(得分:0)

创建一个也检查“IsFocused”的MultiTrigger。

答案 1 :(得分:0)

将触发器设置为资源区域中的命名样式(对于TextBox类型),然后对每个TextBox使用该样式