【发布时间】:2017-09-05 21:07:36
【问题描述】:
我试图根据ToggleButton 的IsChecked 状态为我的ToggleButton 提供不同的图像,但在UWP 样式中不再存在触发器,因此必须以不同的方式完成。
我遇到了一些讨论,假设的解决方案是使用DataTriggerBehavior,但我无处可去。
我想要实现的(蓝色未选中,绿色已选中):
以下是好的方向吗?
<ToggleButton
x:Name="ToggleButton"
IsChecked="{Binding SignalButtonSelected, Mode=TwoWay}"
Command="{Binding SignalButtonCommand}">
<Grid>
<Image x:Name="IsCheckedImage" Source="Images/Buttons/Button signal.png">
<Interactivity:Interaction.Behaviors>
<Core:DataTriggerBehavior Binding="{Binding IsChecked, ElementName=ToggleButton}" Value="True">
<Core:ChangePropertyAction TargetObject="{Binding ElementName=IsCheckedImage}" PropertyName="Visibility" Value="Collapsed" />
</Core:DataTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</Image>
<Image x:Name="IsUncheckedImage" Source="Images/Buttons/Button electric ns.png">
<Interactivity:Interaction.Behaviors>
<Core:DataTriggerBehavior Binding="{Binding IsChecked, ElementName=ToggleButton}" Value="False">
<Core:ChangePropertyAction TargetObject="{Binding ElementName=IsUncheckedImage}" PropertyName="Visibility" Value="Collapsed" />
</Core:DataTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</Image>
</Grid>
</ToggleButton>
或者有没有更好/更简单的方法来实现这一点?我还阅读了一些关于 VisualStateManager 的内容,我对这方面的经验也为零......
希望有人能把我推向正确的方向......
【问题讨论】:
标签: c# xaml uwp win-universal-app