首页 > 解决方案 > WinUI UWP项目中是否有类似WPF-DataTrigger的东西?

问题描述

我想根据绑定值更改样式,为此我在 WPF 中使用了 DataTriggers。现在我试图在 WinUI 项目中实现相同的目标,但由于 WinUI 中没有 DataTriggers,我无法更进一步。

在进一步分析中,我发现包 Microsoft.Xaml.Behaviors.WinUI.Managed 在 WinUI 项目中使用行为,但我无法在 WinUI UWP 项目中安装它。

注意:由于 VisualStateManager 只包括常见的状态,我不能在这里应用它。

标签: c#wpfuwpwinui-3

解决方案


我发现包 Microsoft.Xaml.Behaviors.WinUI.Managed 在 WinUI 项目中使用行为,但我无法在 WinUI UWP 项目中安装它。

可用的 xaml 行为包是Microsoft.Xaml.Behaviors.Uwp.Managed,您可以将其安装到您的 uwp 项目中,并用于DataTriggerBehavior根据特定的绑定数据控制您的 xaml。

<Rectangle x:Name="DataTriggerRectangle">
    <Interactivity:Interaction.Behaviors>
        <Interactions:DataTriggerBehavior Binding="{Binding Value, ElementName=slider}" ComparisonCondition="GreaterThan" Value="50">
            <Interactions:ChangePropertyAction TargetObject="{Binding ElementName=DataTriggerRectangle}" PropertyName="Fill" Value="{StaticResource PaleYellowBrush}"/>
        </Interactions:DataTriggerBehavior>
        <Interactions:DataTriggerBehavior Binding="{Binding Value, ElementName=slider}" ComparisonCondition="LessThanOrEqual" Value="50">
            <Interactions:ChangePropertyAction TargetObject="{Binding ElementName=DataTriggerRectangle}" PropertyName="Fill" Value="{StaticResource RoyalBlueBrush}"/>
        </Interactions:DataTriggerBehavior>
    </Interactivity:Interaction.Behaviors>
</Rectangle>

这是您可以参考的官方文档,这是官方代码示例


推荐阅读