UWP 禁用视觉状态或删除触发器



我有一个 UWP 应用,并且在 xaml 中有一个视觉状态触发器,如下所示

<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="WindowStates">
<VisualState x:Name="WideState">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="850" />
</VisualState.StateTriggers>
<VisualState.Setters>
<!-- <Setter Target="MenuGrid.Grid.Background" Value="LightYellow" /> -->
</VisualState.Setters>
</VisualState>
<VisualState x:Name="NarrowState"> ...

现在我想禁用其中一个视觉状态或在代码中以编程方式完全删除触发器。有没有办法做到这一点?

以下是完全删除它们的方法。

// Stop the child Storyboad if there's one.
MyVisualState.Storyboard?.Stop();
// Remove all triggers.
foreach (var trigger in MyVisualState.StateTriggers)
{
MyVisualState.StateTriggers.Remove(trigger);
}

但是,我会使用以下方法,以便以后可以删除并重新添加它们。您需要先命名所有AdaptiveTrigger

// Remove a specific trigger.
MyVisualState.StateTriggers.Remove(MyTrigger);
// Add it back.
MyVisualState.StateTriggers.Add(MyTrigger);

最新更新