开发者

WPF, Two Textboxes, one trigger, one animation?

开发者 https://www.devze.com 2023-01-26 18:22 出处:网络
I have a window with two textboxes sitting in the grid. The grid contains one trigger which fires an animation when the text in either of the textboxes changes. Problem. I want the textbox which is up

I have a window with two textboxes sitting in the grid. The grid contains one trigger which fires an animation when the text in either of the textboxes changes. Problem. I want the textbox which is updated to be affected by the animation, currently I have to set StoryBoard.TargetName to the name of a textbox to make it work.

Here's a snippet:

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

Thank you


put the trigger in named style (for TextBox type) in a resource area, then use that style for each TextBox


Create a MultiTrigger that also checks for "IsFocused".

0

精彩评论

暂无评论...
验证码 换一张
取 消