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

UWP disable visual state or remove trigger

我有一个 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);