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中的控件并选择“编辑附加模板”/“编辑生成的物品容器”,可以获得最佳效果。