3

我正在尝试VisualState在 Windows 10 下为我的新通用应用程序编写一个。
根据有关 的文档VisualState.StateTriggers,您可以将多个触发器添加到视觉状态,因为该属性的类型为IList<StateTriggerBase>

VisualState文档还指出了StateTriggers文档:

一个或多个触发器

一个或多个触发器,可以是 AdaptiveTrigger 或从 StateTriggerBase 派生的自定义触发器。这些可用于指示何时需要自动应用相应的 VisualState,而无需显式调用 GoToState。有关详细信息,请参阅 StateTriggers 属性的备注。

但是,文档没有指出多个触发器如何在这里工作。也没有办法通过任何 C# 代码修改行为。
我想要的行为将需要部分AND/OR中指定的那些触发器的一些条件StateTriggers

"MultiTrigger"除了写我自己的,还有其他方法StateTriggerBase吗?

4

3 回答 3

5

行。由于没有内置MultiTrigger,我自己写的MultiTrigger。多触发器支持ANDOR条件,这正是我所需要的。

它现在包含在 NuGet 包AdaptiveTriggerLibrary中。

于 2015-08-02T09:57:05.243 回答
-1

Herdo,我在StateTriggers行为中观察到的是,当触发器在同一个组中时,它们以相互排斥的方式按顺序执行,某种AND模式。 AND来自不同的触发器VisualStateGroups独立执行,某种OR模式。在这个观察到的行为中,我将改变同一组属性的事物组织到同一个组中,以便在组内控制条件。

于 2018-02-12T19:29:31.863 回答
-2

尝试使用不同的 VisualStateGroups。例如,要处理不同的宽度和方向,请使用 2 VisualStateGroups

<VisualStateGroups x:Name="WidthStates">
    ...
</VisualStateGroups> 

<VisualStateGroups x:Name="OrientationStates">
    ...
</VisualStateGroups> 

在 msdn 上查看此相关问题:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/95291be1-25c7-4310-bb2b-b8fcead3b4d9/multiple-statetriggers-supporting-narrow-and-landscape

于 2015-11-18T18:21:51.247 回答