WPF通过EventTrigger改变其他控件的值

原文: WPF通过EventTrigger改变其他控件的值

场景:点击TextBox后弹出Poppup

原理:使用EventTrigger后触发StoryBoard,通过StoryBoard改变其他控件的值。

参考代码:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
    Grid.RowDefinitions>
    <TextBox 
        x:Name="tb"
        Grid.Row="0"
        Text="Here is some sample text">
    TextBox>
    <Button 
        x:Name="btnFocusTrue"
        Grid.Row="1"
        Content="Set True">
    Button>
    <Button 
        x:Name="btnFocusFalse"
        Grid.Row="2"
        Content="Set False">
    Button>
    <Grid.Triggers>
        <EventTrigger RoutedEvent="Button.Click" SourceName="btnFocusTrue">
            <BeginStoryboard Name="FocusTrueStoryboard">
                <Storyboard >
                    <BooleanAnimationUsingKeyFrames
                        Storyboard.TargetName="tb"
                        Storyboard.TargetProperty="(TextBox.Focusable)">
                        <DiscreteBooleanKeyFrame
                            KeyTime="00:00:01"
                            Value="True" />
                    BooleanAnimationUsingKeyFrames>
                Storyboard>
            BeginStoryboard>
        EventTrigger>
        <EventTrigger RoutedEvent="Button.Click" SourceName="btnFocusFalse">
            <BeginStoryboard Name="FoucsFalseStoryboard">
                <Storyboard >
                    <BooleanAnimationUsingKeyFrames
                        Storyboard.TargetName="tb"
                        Storyboard.TargetProperty="(TextBox.Focusable)">
                        <DiscreteBooleanKeyFrame
                            KeyTime="00:00:01"
                            Value="False" />
                    BooleanAnimationUsingKeyFrames>
                Storyboard>
            BeginStoryboard>
        EventTrigger>
    Grid.Triggers>
Grid>

 

你可能感兴趣的:(WPF通过EventTrigger改变其他控件的值)