本当に大きなグリッドを持つ Windows 8 用のアプリを作成したいと考えています。
ユーザーは、このグリッドを水平方向にスクロールできる必要があります。
ただし、画面の幅を解像度ウィジェットよりも大きい数値に定義しても、グリッドは画面の真ん中に表示されます。
スクリーンショットは次のとおりです。
見やすいように、Aqua のメイン グリッドの境界線に色を付けました
また、動的グリッドの背景を青色に着色しました。
これは 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;