我如何创build一个比Windows8中的屏幕更大的视图

我想创build一个真正的大网格的Windows 8的应用程序。
用户应该能够在水平方向上滚动这个网格。

但即使我将“屏幕”宽度定义为大于“分辨率”屏幕的数字,网格也会显示在屏幕中间。

这是一个截图:

在这里输入图像说明

我在Aqua的主栅格的边框着色,所以我可以看到它更好

我还用蓝色给dynamic网格的背景着色。

这是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; 

巴特,我有同样的问题,同时开发我的应用程序的登陆网页。 不要使用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(); 

当你添加更多的内容时,GridView将会增长 – 你没有向我们展示它绑定的内容,因此它是如何显示已经存在的框的。

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