EventTrigger with Setter in WPF?

后端 未结 1 1337
梦如初夏
梦如初夏 2020-12-15 08:03

I have a normal Button and TextBox in a WPF-Window and I want a Template for the Button with a EventTrigger that listens to Button.Click and then sets a boolean-property of

相关标签:
1条回答
  • 2020-12-15 08:47

    Here is a sample that sets and clears Focusable on a TextBox from an EventTrigger.
    Hopefully you can adapt this example to your situation.

    <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>
    
    0 讨论(0)
提交回复
热议问题