2014-03-25 25 views
0

所以我很確定這應該是一個快速簡單的修復,但我似乎無法弄清楚。我試圖改變基於設備方向的我的GridView的佈局,全部在Xaml內。 例如:
Windows 8 Xaml-基於方向改變GridView佈局

臥式(水平滾動)
的Item1 ITEM2項目3
ITEM4 ITEM5 ITEM6

垂直(垂直滾動)
ITEM1
ITEM2
項目3
ITEM4
ITEM5
item6

<StackPanel Orientation="Horizontal" RequestedTheme="Light"> 
     <GridView TabIndex="1" Grid.Row="2" ItemClick="LooksDetailItemClick" 
               IsItemClickEnabled="True" IsSwipeEnabled="False"  
               Padding="10,10,10,10" SelectionMode="Single" 
               ItemsSource="{Binding subItems}" Height="auto" Width="auto" HorizontalAlignment="Left" 
               VerticalAlignment="Top" Background="WhiteSmoke" HorizontalContentAlignment="Left" > 
      <GridView.ItemTemplate> 
       <DataTemplate> 

        <Grid x:Name="InnerGrid" Grid.Column="1" Height="auto" Width="364"> 
         <Grid.RowDefinitions> 
          <RowDefinition Height="0"/> 
          <RowDefinition Height="280"/> 
         </Grid.RowDefinitions> 

         <Grid x:Name="OtherGrid" Grid.Row="2" Grid.Column="2" Margin="29,0,35,0"> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="30"/> 
           <!--TitleBox--> 
           <RowDefinition Height="354*"/> 
          </Grid.RowDefinitions> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition Width="195*"/> 
           <!-- Right Box Text --> 
           <ColumnDefinition Width="130*"/> 
          </Grid.ColumnDefinitions> 

          <TextBlock Text="{Binding name}" VerticalAlignment="Top" TextWrapping="Wrap" HorizontalAlignment="Left" 
Width="auto" Height="auto" Margin="0,0,-198,0" /> 
          <Image Source="{Binding imagePath}" Grid.Column="0" Grid.Row="1" Stretch="Fill" Height="212" Width="141" 
    VerticalAlignment="Top" HorizontalAlignment="Left" Margin="10,0,20,0"/> 

          <StackPanel Grid.Column="2" Grid.Row="2" Orientation="Vertical"> 

           <TextBlock Text="Style:" FontSize="24" Margin="0, 10, 0, 0"/> 
           <TextBlock Text="10000023" FontSize="10.667" Margin="0, 10, 0, 0"/> 
           <TextBlock Text="{Binding price}" FontSize="24" Margin="0, 10, 0, 0"/> 
           <TextBlock Text="Color:" FontSize="24" Margin="0, 10, 0, 0"/> 

           <GridView Height="130" ItemsSource="{Binding colors}"> 
            <GridView.ItemTemplate> 
             <DataTemplate> 
              <Image Source="{Binding Color_Image}" Width="40" Height="40" HorizontalAlignment="Left"/> 
             </DataTemplate> 
            </GridView.ItemTemplate> 
           </GridView> 
          </StackPanel> 
         </Grid> 
        </Grid> 
       </DataTemplate> 
      </GridView.ItemTemplate> 
      <GridView.ItemsPanel> 
       <ItemsPanelTemplate> 
        <VariableSizedWrapGrid Orientation="Vertical" MaximumRowsOrColumns="2" /> 
       </ItemsPanelTemplate> 
      </GridView.ItemsPanel> 
     </GridView> 
    </StackPanel> 

回答

0

不幸的是,你不能在XAML中完成所有工作,除非通過類似於LayoutAwarePage的東西,而不再支持它。因此,您需要創建自己的實現,這不會是「XAML內的全部」解決方案。