【发布时间】:2016-02-12 10:05:33
【问题描述】:
似乎 UWP XAML 不支持样式中的触发器。完成以下触发器的常见解决方法是什么?
<Style TargetType="Button">
<Style.Triggers>
<Trigger Property="Visibility" Value="Collapsed">
<Setter Property="Text" Value="" />
</Trigger>
</Style.Triggers>
</Style>
目前我看到以下选项可以在 UWP 中完成触发器:
使用动画或 VisualStateTriggers。如果我不使用它们来调整屏幕控件,那么两者似乎都是错误的。
我想我找到了为控件实现触发器的正确方法。 请看下面的代码作为演示:
xmlns:Interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:Core="using:Microsoft.Xaml.Interactions.Core"
<Border x:Name="BackgroundElement" Tag="Text">
<Interactivity:Interaction.Behaviors>
<Core:DataTriggerBehavior Binding="{Binding Tag, ElementName=BackgroundElement}" Value="Text">
<Core:ChangePropertyAction PropertyName="BorderBrush" Value="AliceBlue" />
</Core:DataTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</Border>
如果有没有 ElementName 的解决方案,那就太棒了。我会在 WPF 中使用 AncestorType 完成此操作,但这在 UWP 中也没有。无论如何,您似乎不能在样式中使用Core:DataTriggerBehavior。
【问题讨论】:
-
在 UWP 应用中,你必须使用visual states。
-
查看创建自定义 StateTrigger(从 StateTriggerBase 继承),然后在可视状态中使用它
标签: c# xaml visual-studio-2015 win-universal-app uwp