单击其他按钮时取消选中 ToggleButton
Uncheck ToggleButton when other button is clicked
根据描述,我有一个 ToggleButton
和一个 Button
。
当 ToggleButton
切换时 Button
出现,未切换时消失。
我想触发 ToggleButton
属性 IsChecked
并在单击 Button
时将其设置为 false。我知道应该用触发器来完成,但我不知道怎么做。
<ToggleButton x:Name="EditBtn" VerticalAlignment="Top" Focusable="False">
<Button VerticalAlignment="Bottom" Height="24" Width="24"
Visibility="{Binding ElementName=EditBtn, Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}"
Command="{Binding ElementName=InfoList, Path=DataContext.SaveCommand}" CommandParameter="{Binding}" >
<Button.Style>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource ButtonTransparentStyle}">
<Style.Triggers>
<!-- Something here? -->
</Style.Triggers>
</Style>
</Button.Style>
</Button>
这是一个使用 StoryBoard 的选项:
<Button VerticalAlignment="Bottom" Height="24" Width="24"
Visibility="{Binding ElementName=EditBtn, Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}"
Command="{Binding ElementName=InfoList, Path=DataContext.SaveCommand}" CommandParameter="{Binding}" >
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames
Storyboard.TargetName="EditBtn"
Storyboard.TargetProperty="(ToggleButton.IsChecked)">
<DiscreteBooleanKeyFrame
KeyTime="00:00:00"
Value="False"/>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
您还可以绑定 ToggleButton 的 IsChecked 属性,然后只需修改 ViewModel 中附加的 属性(在您的 Button 命令触发的空白处)。
根据描述,我有一个 ToggleButton
和一个 Button
。
当 ToggleButton
切换时 Button
出现,未切换时消失。
我想触发 ToggleButton
属性 IsChecked
并在单击 Button
时将其设置为 false。我知道应该用触发器来完成,但我不知道怎么做。
<ToggleButton x:Name="EditBtn" VerticalAlignment="Top" Focusable="False">
<Button VerticalAlignment="Bottom" Height="24" Width="24"
Visibility="{Binding ElementName=EditBtn, Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}"
Command="{Binding ElementName=InfoList, Path=DataContext.SaveCommand}" CommandParameter="{Binding}" >
<Button.Style>
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource ButtonTransparentStyle}">
<Style.Triggers>
<!-- Something here? -->
</Style.Triggers>
</Style>
</Button.Style>
</Button>
这是一个使用 StoryBoard 的选项:
<Button VerticalAlignment="Bottom" Height="24" Width="24"
Visibility="{Binding ElementName=EditBtn, Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}"
Command="{Binding ElementName=InfoList, Path=DataContext.SaveCommand}" CommandParameter="{Binding}" >
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames
Storyboard.TargetName="EditBtn"
Storyboard.TargetProperty="(ToggleButton.IsChecked)">
<DiscreteBooleanKeyFrame
KeyTime="00:00:00"
Value="False"/>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
您还可以绑定 ToggleButton 的 IsChecked 属性,然后只需修改 ViewModel 中附加的 属性(在您的 Button 命令触发的空白处)。