我目前正在尝试为使用 Grid 作为其 ItemsPanel 的 ItemsControl 构建 ControlTemplate,其中每个项目水平堆叠并用 GridSplitter 分隔。
基本目标是拥有一个动态可绑定的 ItemsControl,其中所有项目堆叠成一行,并且每个项目都可以使用拆分器调整大小。
有两件事我无法理解: GridSplitter 应该如何在每个项目之间自动结束?如何为每个项目设置 Grid.Column。
如果这不能用一个简单的控制模板来完成,那么实现这样的东西的常见和好的方法是什么?我需要为此编写一个新的 ItemsControl 吗?
我需要实际的 (Grid)Splitter 控件,因此可以为它们提供自定义 ControlTemplates。此外,我认为为单元格添加额外的布局功能(GridLengthUnitType、Stretch、Alignment)会非常方便。
因此,当我自己滚动时,我想我需要一个自定义 ItemsControl(为每个项目生成拆分器)和一个自定义面板(其行为类似于 onerow/onecolumn 网格 - 所以不需要附加的 Grid.Row、Grid.Column 属性, .Orientation 就足够了)可以采用 Splitter 控件并知道如何在布局方面处理它们。
您如何看待这种方法?是首选还是好方法?