-1

的響應UI,我知道VisualStateManager能做到這一點work.Bu我不知道 怎麼辦如何開發的Windows Stroe的郵件風格應用

以寬屏幕模式,它有兩個columns.The第一列顯示一個列表和第二場演出在同一個頁面中的內容

WideMode

而且在狹窄的模式,它只能說明一兩件事一次在一個頁面,白衣導航。就像Win10郵件應用程序一樣。

narrow mode1

narrow mode2

非常感謝

回答

0

下面是一個XAML代碼:

<Grid Background="White"> 
    <VisualStateManager.VisualStateGroups> 
     <VisualStateGroup x:Name="VisualStateGroup"> 
      <VisualState x:Name="VisualStateNarrow"> 

       <VisualState.Setters> 
        <Setter Target="emailDetails.(UIElement.Visibility)" Value="Collapsed"/> 
        <Setter Target="emailsList.(Grid.ColumnSpan)" Value="2"/> 
       </VisualState.Setters> 
       <VisualState.StateTriggers> 
        <AdaptiveTrigger MinWindowWidth="1"/> 
       </VisualState.StateTriggers> 
      </VisualState> 


      <VisualState x:Name="VisualStateExtended"> 
       <VisualState.StateTriggers> 
        <AdaptiveTrigger MinWindowWidth="700"/> 
       </VisualState.StateTriggers> 
      </VisualState> 
     </VisualStateGroup> 
    </VisualStateManager.VisualStateGroups> 

    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="340" /> 
     <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 

    <!-- Emails List --> 
    <Grid x:Name="emailsList" Background="LightBlue" > 
     <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="Nothing to show!" /> 
    </Grid> 

    <!-- Email Details --> 
    <Grid Grid.Column="1" x:Name="emailDetails" Background="Blue" > 
     <TextBlock HorizontalAlignment="Center" Foreground="White" VerticalAlignment="Center" Text="Select email to show!" /> 
    </Grid> 

</Grid> 

我爲擴展設置 '700像素' 作爲一個最小寬度狀態,可以通過以下方式更改:<AdaptiveTrigger MinWindowWidth="700"/>

+0

謝謝。這是非常好的代碼。我不知道爲什麼'VisualStateExtended'沒有'VisualState.Setters',但它確實有效。 – startewho

+0

您不必爲主/默認設計或狀態:)分配設置器。 –

+0

@startewho請接受它作爲回答,以幫助他人快速獲得:) –

相關問題