0
我正在編寫一個UWP應用程序。如何在UWP應用程序中使用此自適應觸發器
我加了SplitView(用於漢堡包的目的)到頁面。
在SPLITVIEW窗格,我有兩個項目:
- SellButtonGrid
- SellButtonGridAlternate的上述兩項取決於兩個條件
能見度:
- 最小520窗口高度
- 和SplitViewPane已打開或關閉。
這意味着4箱子:
- 視窗高度大於520更小和splitviewpane關閉比520和splitviewpane開放
視窗高度大於520更大和
視窗高度較小splitviewpane已關閉
- 窗口高度大於52 0和splitviewpane開放
對於SPLITVIEW打開或關閉使用:
<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>
爲了檢測低於或高於520高度我使用:
<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>
但結果並不是我所期望的。 如何合併這些視覺狀態?
我試着使用: http://dotnetbyexample.blogspot.in/2016/02/an-adaptivetrigger-that-works-with.html
我使用上述解決方案,所以: 我重做代碼:
xmlns:Utils="using:DellApp.Utils"
xmlns:converters="using:DellApp.Converters"
xmlns:windowsStateTriggers="using:WindowsStateTriggers"
新創建的狀態:
<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>
所以,我做的是我的廣告代理CompositeStateTrigger from WindowsStateTriggers但我無法觸發它。
燁曾爲!非常感謝 –