我知道我可以使用ListView和GridView創建任何大小的「瓷磚」/項目,但我如何創建不同大小的瓷磚以供在我的應用程序中使用?這將需要使用ListView或GridView。Windows應用程序中的不同大小的瓷磚
我已經嘗試了很多東西,但我完全不知道如何做到這一點。任何幫助都感激不盡。
如果我沒有描述什麼,我想正確實現,這裏是一個事先知情同意:
我知道我可以使用ListView和GridView創建任何大小的「瓷磚」/項目,但我如何創建不同大小的瓷磚以供在我的應用程序中使用?這將需要使用ListView或GridView。Windows應用程序中的不同大小的瓷磚
我已經嘗試了很多東西,但我完全不知道如何做到這一點。任何幫助都感激不盡。
如果我沒有描述什麼,我想正確實現,這裏是一個事先知情同意:
一個簡單的方法是創建一個從GridView繼承的新類並重寫PrepareContainerForItemOverride方法。您可以在其中根據模型數據將Column Span和RowSpan設置爲Child項目。考慮你的模型類包含生成信息。
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
/ItemsPanelTemplate
設置爲VariableSizedWrapGrid
並設置Grid.RowSpan
/ColumnSpan
您的列表項目到您想要的值。我相信你可以在列表控件的ItemContainerStyle
中做到這一點,通過右鍵單擊VS XAML設計視圖中或Blend中的控件並選擇「編輯附加模板」/「編輯生成的物品容器」,可以獲得最佳效果。