WPF, два текстовых поля, один триггер, одна анимация? - PullRequest
0 голосов
/ 25 ноября 2010

У меня есть окно с двумя текстовыми полями, сидящими в сетке.Сетка содержит один триггер, который запускает анимацию при изменении текста в любом из текстовых полей.Проблема.Я хочу, чтобы на текстовое поле, которое обновляется, влияла анимация, в настоящее время необходимо установить 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 голосов
/ 25 ноября 2010

поместите триггер в именованном стиле (для типа TextBox) в области ресурсов, затем используйте этот стиль для каждого TextBox

0 голосов
/ 25 ноября 2010

Создать MultiTrigger, который также проверяет «IsFocused».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...