C# 如何在Windows8中创建比屏幕大的视图

C# 如何在Windows8中创建比屏幕大的视图,c#,windows,xaml,windows-8,microsoft-metro,C#,Windows,Xaml,Windows 8,Microsoft Metro,我想为Windows 8创建一个具有真正大网格的应用程序。 用户应该能够在水平方向上滚动此网格 但是,即使将屏幕的宽度定义为大于分辨率宽度的数字,网格也只出现在屏幕的中间。 以下是一个屏幕截图: 我把主网格的边框涂成了浅绿色,这样我可以看得更清楚 我还将动态网格的背面涂成蓝色 这是XAML: <Page.Resources> <!-- Auflistung von Elementen, die von dieser Seite angezeigt werden --

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

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

以下是一个屏幕截图:

我把主网格的边框涂成了浅绿色,这样我可以看得更清楚

我还将动态网格的背面涂成蓝色

这是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"/>

GridView将随着您向其添加更多内容而增长-您还没有向我们展示它绑定到什么,以及它如何显示其中已有的框


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

Bart,我在为我的应用程序开发登录网格页面时遇到了同样的问题。不要使用网格。列是XAML,因为您尚未在主网格中定义任何列定义。不要与具有columndefinition的网格混淆,因为它仅用于页面标题和后退按钮

您的网格视图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"/>

如果我理解你的问题,你需要将你的可滚动内容包装在一个文件中。谢谢你的评论,但这不是我的意思。
<!-- 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"/>
this.InitializeComponent();