2012-10-01 32 views
2

我想为真正的大网格创建Windows 8应用程序。
用户应该能够在水平方向上滚动该网格。如何创建比Windows8中的屏幕更大的视图

但即使我将屏幕的宽度定义为大于分辨率窗口的数字,网格也会出现在屏幕中间。

下面是截图:

enter image description here

我彩色的水上主电网的边界,所以我可以看到它更好

而且我彩色动态网格的底色为蓝色。

这是XAML:

<Page.Resources> 

    <!-- Auflistung von Elementen, die von dieser Seite angezeigt werden --> 
    <CollectionViewSource 
     x:Name="itemsViewSource" 
     Source="{Binding Items}"/> 

    <!-- TODO: Diese Zeile löschen, wenn der Schlüssel "AppName" in "App.xaml" deklariert ist --> 
    <x:String x:Key="AppName">My Application</x:String> 
</Page.Resources> 

<!-- 
    Dieses Raster fungiert als Stammbereich für die Seite, die zwei Zeilen definiert: 
    * Zeile 0 enthält die Schaltfläche "Zurück" und den Seitentitel. 
    * Zeile 1 enthält den Rest des Seitenlayouts. 
--> 
<Grid Style="{StaticResource LayoutRootStyle}"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="140"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 

    <!-- Schaltfläche "Zurück" und Seitentitel --> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto"/> 
      <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 
     <Button x:Name="backButton" Click="GoBack" IsEnabled="{Binding Frame.CanGoBack, ElementName=pageRoot}" Style="{StaticResource BackButtonStyle}"/> 
     <TextBlock x:Name="pageTitle" Grid.Column="1" Text="{StaticResource AppName}" Style="{StaticResource PageHeaderTextStyle}"/> 
     <Button Content="Button" Grid.Column="1" HorizontalAlignment="Left" Margin="705,92,0,0" VerticalAlignment="Top" Click="Button_Click_1"/> 
    </Grid> 

    <!-- Raster mit horizontalem Bildlauf (wird in den meisten Ansichtsstatus verwendet) --> 
    <GridView 
     x:Name="itemGridView" 
     TabIndex="1" 
     Grid.Row="1" 
     Grid.Column="0" 
     Margin="0,-4,0,0" 
     Padding="116,0,116,46" Grid.ColumnSpan="1" SelectionMode="None" BorderThickness="3" BorderBrush="Aqua"/> 

而且部份是C#:

this.InitializeComponent(); 

this.itemGridView.FlowDirection = Windows.UI.Xaml.FlowDirection.LeftToRight; 
this.itemGridView.ItemContainerStyle = null; 

pageTitle.Text = startFolder.name; 
Windows.UI.Xaml.Thickness th = new Thickness(0, 0, 0, 0); 
this.Margin = th; 

this.itemGridView.Margin = th; 
this.itemGridView.Width = 2000; 
+1

如果我理解你的问题,你需要用你的滚动内容在。 – Spevy

+0

谢谢您的评论,但这不是我的意思。 – Vlorian

回答

2

Bart,我在为我的应用开发登陆网页时遇到同样的问题。不要使用Grid.Column是XAML,因为您尚未在主网格中定义任何ColumnDefinitions。不要与具有列定义的网格混淆,因为它仅用于页面标题和返回按钮。

您的网格视图XAML应该看起来像这样。

<!-- Horizontal scrolling grid used in most view states --> 
    <GridView 
     x:Name="itemGridView" 
     AutomationProperties.AutomationId="ItemsGridView" 
     AutomationProperties.Name="Items" 
     TabIndex="1" 
     Grid.RowSpan="2" 
     Padding="116,136,116,46" 
     ItemsSource="{Binding Source={StaticResource itemsViewSource}}" 
     ItemTemplate="{StaticResource DefaultGridItemTemplate}" 
     SelectionMode="None" 
     IsSwipeEnabled="false" 
     IsItemClickEnabled="True" 
     ItemClick="ItemView_ItemClick"/> 

在C#代码,只是有以下行并删除一切

this.InitializeComponent();  
0

当你添加更多的内容GridView控件将增长 - 你还没有告诉我们那是什么束缚因此它如何显示已经存在的盒子。

如果你的itemsViewSource包含更多的项目,那么他们应该出现在GridView中,它将滚动显示它们全部。

相关问题