WPF网格和togglebutton相互绑定
WPF grid and togglebutton mutual binding
我的应用程序中有一个网格,我需要该网格像弹出窗口一样工作,同时选中它应该出现的切换按钮,而取消选中它应该消失,为此我编写了这样的代码。
<Grid x:Name="popup" Visibility="{Binding IsChecked,ElementName=button,Converter={StaticResource BooleanToVisibility}}" >
<Grid.Resources><Storyboard x:Key="ResetButton1">
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(ToggleButton.IsChecked)"
Storyboard.TargetName="button">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<System:Boolean>False</System:Boolean>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard></Grid.Resources>
<i:Interaction.Triggers>
<i:EventTrigger EventName="TouchDown">
<ei:ControlStoryboardAction Storyboard="{StaticResource ResetButton1}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<TextBlock >this is a popup</TextBlock> </Grid>
<ToggleButton x:Name="button"></ToggleButton>
我在选中切换按钮后取消选中它时出现问题。当我点击 togglebutton.How 我可以处理它?
时,弹出窗口停留在那里,animation.It 工作正常
好的,朋友,您目前的方式没有多大意义。订阅 TouchDown
事件以触发一个仅取消选中 ToggleButton
的故事板是一个自我否定的循环。
相反,只需在其中放置几个 .Triggers 即可切换 Grid 的可见性并摆脱 Storyboard 和 TouchDown EventTrigger。
所以只要把这样的东西作为触发器。
<DataTrigger Binding="{Binding IsChecked, ElementName=button}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsChecked, ElementName=button}" Value="False">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
或者您也可以使用 Blend SDK for wpf ChangePropertyAction
。
希望这对您有所帮助。
我的应用程序中有一个网格,我需要该网格像弹出窗口一样工作,同时选中它应该出现的切换按钮,而取消选中它应该消失,为此我编写了这样的代码。
<Grid x:Name="popup" Visibility="{Binding IsChecked,ElementName=button,Converter={StaticResource BooleanToVisibility}}" >
<Grid.Resources><Storyboard x:Key="ResetButton1">
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(ToggleButton.IsChecked)"
Storyboard.TargetName="button">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<System:Boolean>False</System:Boolean>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard></Grid.Resources>
<i:Interaction.Triggers>
<i:EventTrigger EventName="TouchDown">
<ei:ControlStoryboardAction Storyboard="{StaticResource ResetButton1}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<TextBlock >this is a popup</TextBlock> </Grid>
<ToggleButton x:Name="button"></ToggleButton>
我在选中切换按钮后取消选中它时出现问题。当我点击 togglebutton.How 我可以处理它?
时,弹出窗口停留在那里,animation.It 工作正常好的,朋友,您目前的方式没有多大意义。订阅 TouchDown
事件以触发一个仅取消选中 ToggleButton
的故事板是一个自我否定的循环。
相反,只需在其中放置几个 .Triggers 即可切换 Grid 的可见性并摆脱 Storyboard 和 TouchDown EventTrigger。
所以只要把这样的东西作为触发器。
<DataTrigger Binding="{Binding IsChecked, ElementName=button}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsChecked, ElementName=button}" Value="False">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
或者您也可以使用 Blend SDK for wpf ChangePropertyAction
。
希望这对您有所帮助。