我在WinRT参考中找到了EventTrigger,但是我找不到DataTrigger。我也不能在应用程序中使用它。
有人能证实WinRT中真的缺少DataTrigger吗?EventTrigger是WinRT中唯一可用的触发器吗?
发布于 2014-06-12 04:17:21
我不知道它是什么时候改变的,但是我把DataTriggerBehavior和GoToStateAction结合起来应该可以解决你的问题……
命名空间导入
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:Interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:Core="using:Microsoft.Xaml.Interactions.Core"ViewSateManager放置在根元素上
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="Common">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="0" To="Online">
<Storyboard>
<ColorAnimation Duration="0" To="Lime" Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color)" Storyboard.TargetName="Name" />
</Storyboard>
</VisualTransition>
<VisualTransition GeneratedDuration="0" To="Offline">
<Storyboard>
<ColorAnimation Duration="0" To="Red" Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color)" Storyboard.TargetName="Name" />
</Storyboard>
</VisualTransition>
</VisualStateGroup.Transitions>
<VisualState x:Name="Online" />
<VisualState x:Name="Offline" />
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Interactivity:Interaction.Behaviors>
<Core:DataTriggerBehavior Binding="{Binding Active}" Value="True">
<Core:GoToStateAction StateName="Online" />
</Core:DataTriggerBehavior>
<Core:DataTriggerBehavior Binding="{Binding Active}" Value="False">
<Core:GoToStateAction StateName="Offline" />
</Core:DataTriggerBehavior>
</Interactivity:Interaction.Behaviors>发布于 2011-09-16 23:18:17
WinRT XAML目前不支持DataTrigger。
附录,作者: Mike Brown
Blend SDK for Silverlight提供了一个类似于数据触发器的API,DataTrigger API已经被所取代。由于附加的行为模式在WinRT中工作,因此也可以执行相同的操作。
发布于 2013-10-11 22:59:47
这个似乎在WinRT中实现触发器的项目怎么样:http://winrttriggers.codeplex.com/
https://stackoverflow.com/questions/7439532
复制相似问题