2010-11-25 86 views
0

我有一个坐在网格中的两个文本框的窗口。网格包含一个触发器,当任何一个文本框中的文本发生更改时都会触发动画。问题。我想要更新的文本框受动画影响,目前我必须将StoryBoard.TargetName设置为文本框的名称才能使其工作。WPF,两个文本框,一个触发器,一个动画?

这里有一个片段:

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

谢谢

回答

0

把触发器命名样式(TextBox型)在资源区域,然后使用该样式的每个TextBox

+0

我曾经试过,但我已经对新的活力攻击它,它现在的作品:)这里的我添加的资源。 – Ian 2010-11-25 15:09:38

0

创建MultiTrigger也检查 “IsFocused”。