Mur*_*ven 18 xaml windows-8 windows-runtime
我能够在WinRT参考中找到EventTrigger,但是,我无法找到DataTrigger.我也无法在应用程序中使用它.
任何人都可以确认WinRT中确实缺少DataTrigger吗?EventTrigger是WinRT中唯一可用的触发器吗?
小智 20
WinRT XAML目前不支持DataTrigger.
Mike Brown的附录
DataTrigger API已替换为VisualStateManager,Blend SDK for Silverlight提供了与数据触发器类似的API.由于附加行为模式在WinRT中有效,因此可以执行相同的操作.
我不知道它什么时候改变,但我改变了,将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"
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)