Ich schreibe eine UWP-Anwendung.So verwenden Sie diesen AdaptiveTrigger in UWP App
Ich habe SplitView (für Hamburger Zwecke) auf Seite hinzugefügt.
In Splitview Pane, ich habe zwei Artikel:
- SellButtonGrid
- SellButtonGridAlternate
Sichtbarkeit von beiden Positionen sind abhängig von zwei Bedingungen:
- Minimum 520 Windows Höhe
- und SplitViewPane geöffnet oder geschlossen.
Das bedeutet, 4 Fälle:
- Windows-Höhe weniger als 520 und splitviewpane geschlossen
Windows-Höhe weniger als 520 und splitviewpane offen
Windows-Höhe größer als 520 und splitviewpane geschlossen
- Windows Höhe größer als 52 0 und splitviewpane offen
Für SPLITVIEW- öffnen oder schließen Ich benutze:
<VisualState x:Name="SplitViewOpen">
<VisualState.StateTriggers>
<StateTrigger IsActive="{Binding ElementName=LayoutSplitView,
Path=IsPaneOpen}" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="SellButtonGrid.Visibility" Value="Visible" />
<Setter Target="SellButtonGridAlternate.Visibility" Value="Collapsed" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="SplitViewClosed">
<VisualState.StateTriggers>
<StateTrigger IsActive="{Binding ElementName=LayoutSplitView,
Path=IsPaneOpen, Converter={StaticResource BooleanNegationConverter}}" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="SellButtonGrid.Visibility" Value="Collapsed" />
<Setter Target="SellButtonGridAlternate.Visibility" Value="Visible" />
</VisualState.Setters>
</VisualState>
Für unter oder über 520 Erfassungshöhe ich verwenden:
<VisualState x:Name="SmallHeight">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowHeight="0" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="SellButtonGrid.Visibility" Value="Collapsed" />
<Setter Target="SellButtonGridAlternate.Visibility" Value="Visible" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="LargeHeight">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowHeight="520" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="SellButtonGrid.Visibility" Value="Visible" />
<Setter Target="SellButtonGridAlternate.Visibility" Value="Collapsed" />
</VisualState.Setters>
</VisualState>
Aber, Die Ergebnisse sind nicht das, was ich erwartet habe. Wie diese visuellen Zustände zusammengeführt werden?
ich versucht, mit: http://dotnetbyexample.blogspot.in/2016/02/an-adaptivetrigger-that-works-with.html
ich obige Lösung verwendet, so: Mein überarbeitet Code:
xmlns:Utils="using:DellApp.Utils"
xmlns:converters="using:DellApp.Converters"
xmlns:windowsStateTriggers="using:WindowsStateTriggers"
Neu Staaten erstellt:
<VisualState.StateTriggers>
<windowsStateTriggers:CompositeStateTrigger>
<Utils:AdaptiveTrigger MinWindowHeight="520" MaxWindowHeight="18000" />
<StateTrigger IsActive="{Binding ElementName=LayoutSplitView,
Path=IsPaneOpen,
Converter={StaticResource BooleanNegationConverter}}" />
</windowsStateTriggers:CompositeStateTrigger>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="SellButtonGrid.Visibility" Value="Collapsed" />
<Setter Target="SellButtonGridAlternate.Visibility" Value="Visible" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="SplitViewCollapsed_SmallHeight">
<VisualState.StateTriggers>
<windowsStateTriggers:CompositeStateTrigger>
<Utils:AdaptiveTrigger MaxWindowHeight="519"
MinWindowHeight="0" />
<StateTrigger IsActive="{Binding ElementName=LayoutSplitView,
Path=IsPaneOpen,
Converter={StaticResource BooleanNegationConverter}}" />
</windowsStateTriggers:CompositeStateTrigger>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="SellButtonGrid.Visibility" Value="Collapsed" />
<Setter Target="SellButtonGridAlternate.Visibility" Value="Visible" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="SplitViewOpen_SmallHeight">
<VisualState.StateTriggers>
<windowsStateTriggers:CompositeStateTrigger>
<Utils:AdaptiveTrigger MaxWindowHeight="519"
MinWindowHeight="0" />
<StateTrigger IsActive="{Binding ElementName=LayoutSplitView,
Path=IsPaneOpen}" />
</windowsStateTriggers:CompositeStateTrigger>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="SellButtonGrid.Visibility" Value="Collapsed" />
<Setter Target="SellButtonGridAlternate.Visibility" Value="Visible" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="SplitViewOpen_LargeHeight">
<VisualState.StateTriggers>
<windowsStateTriggers:CompositeStateTrigger>
<Utils:AdaptiveTrigger MinWindowHeight="520" MaxWindowHeight="18000"/>
<StateTrigger IsActive="{Binding ElementName=LayoutSplitView,
Path=IsPaneOpen}" />
</windowsStateTriggers:CompositeStateTrigger>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="SellButtonGrid.Visibility" Value="Visible" />
<Setter Target="SellButtonGridAlternate.Visibility" Value="Collapsed" />
</VisualState.Setters>
</VisualState>
So, Was ich getan habe, war ich ded CompositeStateTrigger from WindowsStateTriggers aber ich bin nicht in der Lage, es auszulösen.
Yup Arbeitete !. Danke vielmals –