- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个 UWP 应用程序,我正在尝试水平对齐每个 gridview 组中的项目
我有这个:
GROUP 1
Data 1 | Data 2 | Data 3
Data 1 | Data 2 | Data 3
Data 1 | Data 2 | Data 3
GROUP 2
Data 1 | Data 2 | Data 3
Data 1 | Data 2 | Data 3
我想要这个:
GROUP 1
______________________________Data 1 | Data 2 | Data 3
______________________________Data 1 | Data 2 | Data 3
______________________________Data 1 | Data 2 | Data 3
GROUP 2
______________________________Data 1 | Data 2 | Data 3
______________________________Data 1 | Data 2 | Data 3
我为了对齐我使用 WrapGrid 的项目。我还尝试使用非分组的 gridview,我的代码工作正常。
<GridView Grid.Column="0" ItemsSource="{Binding Source={StaticResource GroupBycodeFamille}}" ItemTemplate="{StaticResource DataTempateCatalogue}">
<GridView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate x:DataType="viewModels:GroupInfoList">
<TextBlock Text="{x:Bind Key}" Style="{ThemeResource TitleTextBlockStyle}"/>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</GridView.GroupStyle>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid Orientation="Horizontal" HorizontalAlignment="Center"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
最佳答案
你可以通过设置 GroupStyle.Panel
property来得到你想要的。 .此属性设置一个模板,该模板创建用于布置项目的面板。但是 GridViewItem
has two templates , 当GridView
的 ItemsPanel
是一个 ItemsWrapGrid
(默认)或 ItemsStackPanel
, GridViewItem
使用使用 GridViewItemPresenter
的模板而不是 UIElement
树以提高网格性能。在使用此模板时,设置 GroupStyle.Panel
属性不会影响 GridView
.我们需要 GridViewItem
通过设置 GridView
使用它的第二个模板的 ItemsPanel
给其他人Panel
.由于您的组垂直对齐,我们可以设置 GridView
的 ItemsPanel
到:
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel HorizontalAlignment="Center" Orientation="Vertical" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
然后我们可以设置GroupStyle.Panel
左Margin
实现你的目标。但请注意:
The root element of the template declared for the ItemsPanelTemplate in the GroupStyle.Panel property cannot be a virtualizing panel. Virtualizing panels are defined as any type that derives from
VirtualizingPanel
, for example theVirtualizingStackPanel
class.
所以我们不能使用WrapGrid
在这里,我们可以使用 StackPanel
但这些项目将排列成一行。要将项目排列成多行,我们需要 Panel
喜欢WrapPanel
在 WPF 中。我们可以定制也可以使用第三方WrapPanel
就像 WinRTXamlToolkit 中的一样
。使用 WinRTXamlToolkit 为例:
xmlns:toolkit="using:WinRTXamlToolkit.Controls"
<GroupStyle.Panel>
<ItemsPanelTemplate>
<toolkit:WrapPanel Margin="200,0,0,0" Orientation="Horizontal" />
</ItemsPanelTemplate>
</GroupStyle.Panel>
完整的 XAML 代码可能是这样的:
<GridView Grid.Column="0" ItemsSource="{Binding Source={StaticResource GroupBycodeFamille}}" ItemTemplate="{StaticResource DataTempateCatalogue}">
<GridView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate x:DataType="viewModels:GroupInfoList">
<TextBlock Text="{x:Bind Key}" Style="{ThemeResource TitleTextBlockStyle}"/>
</DataTemplate>
</GroupStyle.HeaderTemplate>
<GroupStyle.Panel>
<ItemsPanelTemplate>
<toolkit:WrapPanel Margin="200,0,0,0" Orientation="Horizontal" />
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</GridView.GroupStyle>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel HorizontalAlignment="Center" Orientation="Vertical" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
关于c# - 使用 WrapGrid 的 Uwp 分组 GridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33782294/
我有 GridView 和 WrapGrid 作为 ItemTemplate。看起来像:
基本上我想要一个 wrapPanel,但我希望项目捕捉到网格而不是向上按到左侧,这样我可以获得一个漂亮的统一外观网格,它会自动占用可用空间。 WrapPanel 处理调整大小部分。WPF.Contri
我有主网格的下一个 XAML:
我在 ListView 中使用 WrapGrid 作为 itemscontrol 以使用以下 XAML 代码 (WinRT) 水平显示项目
WrapGrid 使 TextBlocks 有效地消失。显示项目的轮廓,但看不到文本。在运行时,项目正确显示。 如何让它们在设计时出现?
我正在尝试像这样修改我的 WrapGrid 的 MaximumRowsOrColumns 属性: 然后我使用此代码更改 WrapGrid:
两者 VariableSizedWrapGrid和 WrapGrid有奇怪的测量 - 他们根据第一项测量所有 child 。 因此,以下 XAML 将剪辑第三个项目。
我正在开发一个 UWP 应用程序,我正在尝试水平对齐每个 gridview 组中的项目 我有这个: GROUP 1 Data 1 | Data 2 | Data 3 Data 1 | Data 2 |
我正在为我的 win 10 通用应用程序制作自适应布局。出于某种原因,当我尝试在 visualState 触发器中更改 wrapGrid 的 maximumRowsOrColumns 值时,它无法正常
XAML StackPanel在一个方向上并排对齐控件。一个 WrapPanel相似但像 TextWrapping="Wrap"在 XAML 中 TextBox当达到相应的高度或宽度时,控件“换行”到
我有一个 Windows Phone 8.1 XAML 应用程序,它有一个 ListView 和 WrapGrid 作为它的 ItemsPanel,用于在两列中显示项目
我是一名优秀的程序员,十分优秀!