本主题提供了关于卡片视图内卡片布局的信息。 这里,我们考虑一般的卡片布置机制,以及控制卡片的布局和大小的属性。 此外,请参阅 卡片的自动宽度 主题,来获取卡片视图的自动宽度功能的说明。
一般的卡片布置机制
卡片视图将其卡片布置在列中。 第一张卡片被显示在视图的左上角。 随后的卡片被放置在前面的卡片下面。 如果某张卡片不能被放置在前一张卡片的下面,也不能被垂直截短,则它被放置在下一列的顶部。 后续的卡片被放置在该卡片下面,等等。 卡片之间的水平和垂直间距由 CardView.CardInterval 视图属性控制。 卡片宽度由 CardView.CardWidth 属性指定。 卡片高度取决于卡片的内容。
按照上述说明,每个卡片列中的卡片数目取决于有多少张卡片可以垂直填充在视图内。 当 CardView.MaximumCardRows 属性值是 -1 时,产生这种默认的行为。 如果该属性设置为一个正整数,则该值指定了被显示在每列中的最大卡片数目。 下面的插图展示了默认的卡片布局,并且假设 CardView.MaximumCardRows 属性设置为 2。
也可以限制在视图内显示的卡片列的数目。 使用 CardView.MaximumCardColumns 属性来完成此任务。 下面的插图展示了当 CardView.MaximumCardColumns 属性值为 2 时默认的卡片布局。
注意 |
---|
CardView.MaximumCardColumns 属性经常在启用了自动宽度功能时使用。 请参阅 卡片的自动宽度 主题获知细节。 |
可变的卡片高度
在两种情况下卡片可以有不同的高度。 第一种情况是在禁用 CardOptionsView.ShowEmptyFields 选项时。 在这种情况下,取值为 null (在 Visual Basic 中为 Nothing) 的字段不在卡片内显示。 因此,卡片可以包含不同数目的字段。 如果 CardView.MaximumCardRows 属性值是 -1,则导致在每列中显示不同数目的卡片。请参阅下面的插图。
当启用 CardOptionsBehavior.FieldAutoHeight 选项时,卡片也可以有不同的高度。 此选项仅对使用 MemoEdit 或 PictureEdit 编辑器来显示、编辑器单元格取值的字段有效。 根据编辑器的内容,这些字段的高度被自动计算。 请参阅下面的插图。
当使用 MemoEdit 内置编辑器时,请确保编辑器的文本折行功能已启用 (在默认情况下是启用的)。 请参阅 TextOptions.WordWrap 选项,可以通过编辑器的 RepositoryItem.Appearance 对象来访问。
可以通过接管 CardView.CalcFieldHeight 事件来人工设置个别卡片字段的高度。