【问题标题】:UWP ToggleButton image depending on IsCheckedUWP ToggleButton 图像取决于 IsChecked
【发布时间】:2017-09-05 21:07:36
【问题描述】:

我试图根据ToggleButtonIsChecked 状态为我的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


    【解决方案1】:

    试试这个

    <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>
    

    【讨论】:

    • 嘿杰西卡,连续两次,您正在保存项目!再次感谢您的帮助!
    猜你喜欢
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 2011-04-15
    相关资源
    最近更新 更多