【问题标题】:Is there anything similar to WPF-DataTrigger in WinUI UWP project?WinUI UWP项目中是否有类似WPF-DataTrigger的东西?
【发布时间】:2021-01-12 09:06:47
【问题描述】:

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

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

注意:由于 VisualStateManager 仅包含常见状态,因此我无法在此处应用。

【问题讨论】:

  • 如果答案已经解决了您的问题,请mark它被接受
  • 不,正如我已经提到的,该包不能安装在 WinUI.UWP 项目中,但可以在 WinUI 桌面项目中正常工作。我还记录了一个关于此的问题报告,供您参考github.com/microsoft/XamlBehaviors/issues/210
  • 你用 WinUI 3 项目模板制作 WinUi 应用吗?
  • 是的,我正在使用 WinUI 模板 - marketplace.visualstudio.com/…
  • 请参考以下答案使用Microsoft.Xaml.Behaviors.Uwp.Managed,而不是WinUI.Managed

标签: c# wpf uwp winui-3


【解决方案1】:

我发现包 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>

这里是官方document可以参考,这里是官方code sample

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 2021-09-29
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多