2016-09-28 5 views
0

AdaptiveTriggerDeviceFamilyStateTriggerCompositeStateTriggerで動作させようとしています。CompositeStateTriggerをAdaptiveTriggerとDeviceFamilyStateTriggerで動作させるにはUWP

見つかりまだそれは私がmy issue hereを再現するためのGitHubでサンプルプロジェクトを作成しました

動作するように作ることができない私を導いたが、このuseful link

参考までに、ここに私のXAMLがあります。私は何が欠けていますか?

<Grid Background="AliceBlue" x:Name="gridRoot"> 
    <VisualStateManager.VisualStateGroups> 
     <VisualStateGroup > 
      <VisualState x:Name="narrow"> 
       <VisualState.StateTriggers> 
        <triggers:CompositeStateTrigger Operator="And"> 
         <mytrigger:AdaptiveTrigger MinWindowWidth="0" MaxWindowHeight="520" /> 
         <triggers:DeviceFamilyStateTrigger DeviceFamily="Desktop" /> 
        </triggers:CompositeStateTrigger> 
       </VisualState.StateTriggers> 
       <VisualState.Setters> 
        <Setter Target="textBlock.Text" Value="Desktop is narrow" /> 
       </VisualState.Setters> 
      </VisualState> 
      <VisualState x:Name="medium"> 
       <VisualState.StateTriggers> 
        <triggers:CompositeStateTrigger Operator="And"> 
         <mytrigger:AdaptiveTrigger MinWindowWidth="521" MaxWindowHeight="1199" /> 
         <triggers:DeviceFamilyStateTrigger DeviceFamily="Desktop" /> 
        </triggers:CompositeStateTrigger> 
       </VisualState.StateTriggers> 
       <VisualState.Setters> 
        <Setter Target="textBlock.Text" Value="Desktop is medium width" /> 
       </VisualState.Setters> 
      </VisualState> 
      <VisualState x:Name="wide"> 
       <VisualState.StateTriggers> 
        <triggers:CompositeStateTrigger Operator="And"> 
         <mytrigger:AdaptiveTrigger MinWindowWidth="1200"/> 
         <triggers:DeviceFamilyStateTrigger DeviceFamily="Desktop" /> 
        </triggers:CompositeStateTrigger> 
       </VisualState.StateTriggers> 
       <VisualState.Setters> 
        <Setter Target="textBlock.Text" Value="Desktop is wide" /> 
       </VisualState.Setters> 
      </VisualState> 
     </VisualStateGroup> 
    </VisualStateManager.VisualStateGroups> 

    <Grid x:Name="gridText"> 
     <TextBlock x:Name="textBlock" FontSize="40" Text="My Text Block" Style="{StaticResource HeaderTextBlockStyle}" FontWeight="ExtraBold"/> 
    </Grid> 

</Grid> 

答えて

1

あなたのコードはほぼ正しいです。ここでの問題は、あなたがAdaptiveTriggerに間違った財産を設定したことです。 AdaptiveTriggerでは、MinWindowWidthMaxWindowWidthをとし、MaxWindowHeightを設定しないでください。

あなたは次のようにコードを変更することができ、それが動作するはずです。

<VisualStateManager.VisualStateGroups> 
    <VisualStateGroup> 
     <VisualState x:Name="narrow"> 
      <VisualState.StateTriggers> 
       <triggers:CompositeStateTrigger Operator="And"> 
        <mytrigger:AdaptiveTrigger MaxWindowWidth="520" MinWindowWidth="0" /> 
        <triggers:DeviceFamilyStateTrigger DeviceFamily="Desktop" /> 
       </triggers:CompositeStateTrigger> 
      </VisualState.StateTriggers> 
      <VisualState.Setters> 
       <Setter Target="textBlock.Text" Value="Desktop is narrow" /> 
      </VisualState.Setters> 
     </VisualState> 
     <VisualState x:Name="medium"> 
      <VisualState.StateTriggers> 
       <triggers:CompositeStateTrigger Operator="And"> 
        <mytrigger:AdaptiveTrigger MaxWindowWidth="1199" MinWindowWidth="521" /> 
        <triggers:DeviceFamilyStateTrigger DeviceFamily="Desktop" /> 
       </triggers:CompositeStateTrigger> 
      </VisualState.StateTriggers> 
      <VisualState.Setters> 
       <Setter Target="textBlock.Text" Value="Desktop is medium width" /> 
      </VisualState.Setters> 
     </VisualState> 
     <VisualState x:Name="wide"> 
      <VisualState.StateTriggers> 
       <triggers:CompositeStateTrigger Operator="And"> 
        <mytrigger:AdaptiveTrigger MinWindowWidth="1200" /> 
        <triggers:DeviceFamilyStateTrigger DeviceFamily="Desktop" /> 
       </triggers:CompositeStateTrigger> 
      </VisualState.StateTriggers> 
      <VisualState.Setters> 
       <Setter Target="textBlock.Text" Value="Desktop is wide" /> 
      </VisualState.Setters> 
     </VisualState> 
    </VisualStateGroup> 
</VisualStateManager.VisualStateGroups> 
関連する問題