2017-08-20 2 views
1

ich eine UWP App und einen visuellen Zustand Trigger in XAML haben wie soUWP visuellen Zustand deaktivieren oder entfernen Auslöser

<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"> ... 

Nun möchte ich eine der visuellen Zustände deaktivieren oder den Auslöser vollständig entfernen programmatisch Code. Gibt es eine Möglichkeit, das zu tun?

Antwort

1

So entfernen Sie sie vollständig.

// Stop the child Storyboad if there's one. 
MyVisualState.Storyboard?.Stop(); 

// Remove all triggers. 
foreach (var trigger in MyVisualState.StateTriggers) 
{ 
    MyVisualState.StateTriggers.Remove(trigger); 
} 

Allerdings würde ich den Ansatz unten verwenden, damit ich sie später entfernen und hinzufügen kann. Sie müssen zuerst alle Ihre AdaptiveTrigger s benennen.

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

// Add it back. 
MyVisualState.StateTriggers.Add(MyTrigger); 
+1

genial! Vielen Dank! – SunnySonic

Verwandte Themen