C# 针对单个可视状态的多个VisualState触发器
我正在尝试为Windows 10下的新通用应用程序编写C# 针对单个可视状态的多个VisualState触发器,c#,xaml,win-universal-app,windows-10,uwp,C#,Xaml,Win Universal App,Windows 10,Uwp,我正在尝试为Windows 10下的新通用应用程序编写VisualState。 根据关于的文档,您可以向可视状态添加多个触发器,因为属性的类型为IList VisualState类文档还向StateTriggers文档指出: 一个或多个触发器 一个或多个触发器,可以是AdaptiveTrigger或从StateTriggerBase派生的自定义触发器。这些可用于指示何时需要自动应用相应的VisualState,而无需显式的GoToState调用。有关更多信息,请参阅StateTriggers属性
VisualState
。根据关于的文档,您可以向可视状态添加多个触发器,因为属性的类型为
IList
VisualState
类文档还向StateTriggers
文档指出:
一个或多个触发器
一个或多个触发器,可以是AdaptiveTrigger或从StateTriggerBase派生的自定义触发器。这些可用于指示何时需要自动应用相应的VisualState,而无需显式的GoToState调用。有关更多信息,请参阅StateTriggers属性上的备注
然而,文档并没有指出多个触发器是如何工作的。
也没有办法通过任何C#代码修改行为。我所期望的行为需要在
StateTriggers
部分中指定的触发器具有一些和/或条件
除了编写我自己的“MultiTrigger”
,从StateTriggerBase
派生出来,还有其他方法吗?好的。由于没有内置的多触发器
,我编写了自己的多触发器
。
多触发器支持和
和或
条件,这正是我所需要的
它现在包含在NuGet包中。尝试使用不同的VisualStateGroup。
例如,要处理不同的宽度和方向,请使用2个组
<VisualStateGroups x:Name="WidthStates">
...
</VisualStateGroups>
<VisualStateGroups x:Name="OrientationStates">
...
</VisualStateGroups>
...
...
在msdn上查看此相关问题:
赫尔多,
我在StateTriggers
行为中观察到的是,当触发器在同一组中时,它们会以相互排斥的方式依次执行,有点像和
模式。
和
触发器来自不同的VisualStateGroup
独立执行,有点像或
模式。
在这个观察到的行为中,我将更改同一组属性的内容组织到同一组中,以便在组内控制条件。我已在我的UWP项目(为RS1构建)中安装了AdaptiveTriggerLibrary我试着让两个带and修改器的多触发程序分别使用WindowHeightTrigger和WindowWidthTrigger,但不管我做什么,第一个多触发程序总是比第二个多触发程序活跃。你有那个图书馆的支持邮件吗?我在哪里可以得到帮助?谢谢@Sergio0694请随意在GitHub上打开一个问题:-我会尽快进行调查。