【发布时间】:2017-02-14 22:37:23
【问题描述】:
我有一个网格视图,其中项目源 xbind 到一个可观察的集合。该集合由用户控件(本质上是一个按钮)组成。 我希望网格视图以下列方式容纳项目。
1) 如果它可以在一行中显示两个项目。
2) 如果只能显示一项,需要拉伸以占据全部空间。
如果不遵循第 2 点,则一行中只有一个项目,因为第二个项目无法进入第一行,所有这些空白空间看起来非常糟糕。
<GridView ItemsPanel="{StaticResource VariableSizedItemTemplate}" ItemContainerStyleSelector="{StaticResource VariableSizedStyleSelector}" Name="ContentGrid" ItemsSource="{x:Bind projectsButtonCollection,Mode=OneWay}"></GridView>
<ItemsPanelTemplate x:Key="VariableSizedItemTemplate">
<VariableSizedWrapGrid Orientation="Horizontal"/>
</ItemsPanelTemplate>
VariableSizedStyle 选择器当前正在根据用户控件的属性分配样式。属性只是我们在创建用户控件时初始化的 int。 样式有 Row 和 col 跨度。
<Setter Property="VariableSizedWrapGrid.RowSpan"
Value="2" />
<Setter Property="VariableSizedWrapGrid.ColumnSpan"
Value="2" />
我不认为当前的代码会有所帮助,因为我想改变我现在正在做的事情,项目调整得很漂亮,直到每行只有一个用户控件的空间。然后我就有了所有剩余的空间。
【问题讨论】:
-
你能展示一些你的代码吗?
-
添加了 GridView 面板和样式细节。
-
如果您不想重新发明轮子,UWP Community Toolkit 中有一个 AdaptiveGridView 可以满足您的需求,