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>
时间会记录下一切。