私が現在取り組んでいるプロジェクトのコードスニペットです。 UWP Community ToolkitのBladeview ControlとWrapPanel Panelを使用しています(まだ持っていない場合は、プロジェクトに追加してください)。動的に生成されたキャンバスで効果が得られると思います。
Windowsストアから「UWPサンプルアプリケーション」をダウンロードすることをお勧めします。コミュニティツールキットで利用可能なコントロールを示し、それらのコードを提供します。また、あなたのアプリに役立つ多くの便利な機能のコードとドキュメントを提供しています。
サンプルアプリケーションでは、私が話しているブレードビューコントロールのデモを提供します。
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<ScrollViewer Height="764" Width="776" HorizontalScrollMode="Disabled" VerticalScrollMode="Enabled" HorizontalScrollBarVisibility="Disabled">
<controls:BladeView x:Name="UserBladeView" BladeMode="Normal" ItemsSource="{x:Bind UserDataBase}" Height="auto" Width="767" > <!-- ItemSource Should be the Observable Collection containing your user objects -->
<controls:BladeView.ItemsPanel>
<ItemsPanelTemplate>
<wrapPanel:WrapPanel Orientation="Horizontal" Height="auto" Width="765" Margin="5"/>
</ItemsPanelTemplate>
</controls:BladeView.ItemsPanel>
<controls:BladeView.ItemTemplate>
<DataTemplate x:DataType="models:Product"> <!-- This should correspond to the namespace the class that represents your users resides in xmlns:local="using:yournamespace"-->
<controls:BladeItem x:Name="UserTiles"
IsOpen="True"
TitleBarVisibility="Collapsed" Width="365" Height="575" Visibility="Visible" Background="#FF1D1919" BorderBrush="#FF5D5D5D" BorderThickness="2" Margin="5">
<StackPanel HorizontalAlignment="Left" Height="auto" VerticalAlignment="Top" Width="371" Margin="0,0,-10,-4" >
<TextBlock Margin="2,2,0,2" HorizontalAlignment="Left" TextWrapping="Wrap" x:Name="UserFirstName" Text="{Binding FirstName}" VerticalAlignment="Top" Height="auto" Width="308" FontSize="36" Foreground="#FFCDCDCD"/>
<TextBlock Margin="2" HorizontalAlignment="Left" TextWrapping="Wrap" x:Name="UserLastName" Text="{Binding LastName}" VerticalAlignment="Top" Height="50" Width="316" FontSize="18" Foreground="#FFCDCDCD" Visibility="Visible"/>
<TextBlock Margin="2" HorizontalAlignment="Left" TextWrapping="Wrap" x:Name="UserTitle" Text="{Binding Title}" VerticalAlignment="Top" Height="50" Width="316" FontSize="18" Foreground="#FFCDCDCD" Visibility="Visible"/>
<Image Margin="5" x:Name="UserImage" Source="{Binding UserHeadShot}" Height="100" Width="auto" />
</StackPanel>
</controls:BladeItem>
</DataTemplate>
</controls:BladeView.ItemTemplate>
</controls:BladeView>
</ScrollViewer>
</Grid>
BladeViewコントロール内のItemSourceは、ユーザーオブジェクトを保持するのObservableCollectionであるべきとBladeItem内のあなたのバインディングを表示したいプロパティを表している必要があります。
これは、コレクション内のオブジェクトごとに、クラス内のすべてのバインドされたプロパティを含むBladeItemを作成することです。 WrapPanelは、必要に応じてBladeViewerがBladeItemの新しい行を表示するようにします。
なぜGridViewを使用せず、上のキャンバスで 'DataTemplate'を作成するのですか?DataBaseから取得したデータをバインドし、それ自身を繰り返しますか? – AVK