2015-05-29 92 views
6

我从BUILD事件中观看了“从小屏幕到大屏幕:使用XAML构建通用Windows应用程序体验”会话。 http://channel9.msdn.com/Events/Build/2015/2-679VisualState AdaptiveTrigger未触发

我想尝试AdaptiveTrigger,但它并未与我的最小Windows 10 UWP应用程序一起启动。

<VisualStateManager.VisualStateGroups> 
    <VisualStateGroup x:Name="WindowSizeStates"> 
     <VisualState x:Name="WideState"> 
      <VisualState.StateTriggers> 
       <AdaptiveTrigger MinWindowWidth="800"/> 
      </VisualState.StateTriggers> 
      <VisualState.Setters> 
       <Setter Target="rect.Fill" Value="Beige" /> 
      </VisualState.Setters> 
     </VisualState> 
     <VisualState x:Name="NarrowState"> 
      <VisualState.StateTriggers> 
       <AdaptiveTrigger MinWindowWidth="0" /> 
      </VisualState.StateTriggers> 
      <VisualState.Setters> 
       <Setter Target="rect.Fill" Value="White" /> 
      </VisualState.Setters> 
     </VisualState> 
    </VisualStateGroup> 
</VisualStateManager.VisualStateGroups> 
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <RelativePanel> 
     <Rectangle x:Name="rect" Width="100" Height="100" RelativePanel.AlignTopWithPanel="True" Fill="Beige"/> 
    </RelativePanel> 
</Grid> 

但没有任何反应。似乎触发器根本没有被解雇。我错过了什么?

问候!

回答

15

是的,当您将组放置在Page中而不是在第一个控件中时,就会发生这种情况。除了

<Grid...> 
    <VisualStateManager.VisualStateGroups> 

</Grid> 

如果你想我做了一个在这里多条复杂的适应性触发器:尽量把里面codeproject advanced view states

+0

谢谢,它的工作原理:) 我试图VisualStateManager置于其之前的没RelativePanel也没有工作。 – SeBo

+0

我注意到,在VS2017的最后一个或三个版本中,我的AdaptiveTrigger工作不正常,但仅在调试期间。如果我用VS启动应用程序,那么他们不起作用,如果我通过点击应用程序从他们所做的瓦片正常启动。 :(我在VS2017 15.5.4。其他人? –