ListView と GridView を使用して任意のサイズの「タイル」/アイテムを作成できることはわかっていますが、アプリ内で使用するさまざまなサイズのタイルを作成するにはどうすればよいですか? これは、ListView または GridView で機能する必要があります。
私は非常に多くのことを試しましたが、これを行う方法がまったくわかりません。どんな助けでも大歓迎です。
私が適切に達成しようとしていることを説明していない場合は、ここに写真があります:
ListView と GridView を使用して任意のサイズの「タイル」/アイテムを作成できることはわかっていますが、アプリ内で使用するさまざまなサイズのタイルを作成するにはどうすればよいですか? これは、ListView または GridView で機能する必要があります。
私は非常に多くのことを試しましたが、これを行う方法がまったくわかりません。どんな助けでも大歓迎です。
私が適切に達成しようとしていることを説明していない場合は、ここに写真があります:
簡単な方法は、GridViewから継承する新しいクラスを作成し、PrepareContainerForItemOverrideメソッドをオーバーライドすることです。モデルデータに基づいて、列スパンと行スパンを子アイテムに設定できます。モデルクラスにスパニング情報が含まれていると考えてください。
public class VariableGrid : GridView
{
protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
{
ITileItem tile = item as ITileItem;
if (tile != null)
{
GridViewItem griditem = element as GridViewItem;
if (griditem != null)
{
VariableSizedWrapGrid.SetColumnSpan(griditem, tile.ColumnSpan);
VariableSizedWrapGrid.SetRowSpan(griditem, tile.RowSpan);
}
}
base.PrepareContainerForItemOverride(element, item);
}
}
詳細:http ://wpfplayground.blogspot.in/2013/03/different-sized-tile-items-in-winrt.html
リストの / を設定し、リスト項目の / を必要な値ItemsPanel
に設定する必要があります。VS XAML デザイン ビューまたは Blend でコントロールを右クリックし、[追加テンプレートの編集]/[生成されたアイテム コンテナーの編集] を選択して抽出するのが最適です。ItemsPanelTemplate
VariableSizedWrapGrid
Grid.RowSpan
ColumnSpan
ItemContainerStyle