C# UWP切换按钮图像取决于已检查

C# UWP切换按钮图像取决于已检查,c#,xaml,uwp,win-universal-app,C#,Xaml,Uwp,Win Universal App,我试图根据ToggleButton的IsChecked状态,给我的ToggleButton一个不同的图像,但是在UWP样式中,触发器不再存在,因此必须以不同的方式完成 我参加了一些讨论,其中假定的解决方案是使用DataTriggerBehavior,但我没有取得任何进展 我想要实现的目标(蓝色未选中,绿色已选中): 以下是正确的方向吗 <ToggleButton x:Name="ToggleButton" IsChecked="{Binding SignalButto

我试图根据
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的文章,我对它也没有任何经验

希望有人能把我推向正确的方向…

试试这个

<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:ChangePropertyAction TargetObject="{Binding ElementName=IsUncheckedImage}"
                                                PropertyName="Visibility"
                                                Value="Visible" />
                </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=IsCheckedImage}"
                                                PropertyName="Visibility"
                                                Value="Visible" />
                    <Core:ChangePropertyAction TargetObject="{Binding ElementName=IsUncheckedImage}"
                                                PropertyName="Visibility"
                                                Value="Collapsed" />
                </Core:DataTriggerBehavior>
            </Interactivity:Interaction.Behaviors>
        </Image>
    </Grid>
</ToggleButton>

试试这个

<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:ChangePropertyAction TargetObject="{Binding ElementName=IsUncheckedImage}"
                                                PropertyName="Visibility"
                                                Value="Visible" />
                </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=IsCheckedImage}"
                                                PropertyName="Visibility"
                                                Value="Visible" />
                    <Core:ChangePropertyAction TargetObject="{Binding ElementName=IsUncheckedImage}"
                                                PropertyName="Visibility"
                                                Value="Collapsed" />
                </Core:DataTriggerBehavior>
            </Interactivity:Interaction.Behaviors>
        </Image>
    </Grid>
</ToggleButton>


嘿,杰西卡,连续两次,你正在保存项目!再次感谢你的帮助!嘿,杰西卡,连续两次,你在拯救这个项目!再次感谢你的帮助!