我已经尝试使用TGridLayout来保存一系列TImage对象,每个对象都加载了一个位图。但是,cotrols之间没有余量。我已经尝试使TImage宽度/高度小于TGridLayout itemheight / itemwidth,但没有运气。
示例代码:
ImageRef := TImage.Create(GridLayoutGallery);
ImageRef.Visible := False; // se true later
ImageRef.Width := GridLayoutGallery.ItemWidth - 10;
ImageRef.Height := GridLayoutGallery.ItemHeight - 10;
GridLayoutGallery.AddObject(ImageRef);
答案 0 :(得分:4)
你自己接近一个答案,这就是我如何实现这个目标:
假设您的网格包含一系列尺寸为40 x 40像素的图像
要在图像之间应用边距,只需将ItemWidth组件的ItemHeight和TGridLayout属性设置为大于实际图像大小的值,例如42 x 42像素。
这应该在放置在TGridLayout中的每个图像周围创建一个边距。
答案 1 :(得分:1)
查看TGridLayout的说明: http://docwiki.embarcadero.com/Libraries/XE7/en/FMX.Layouts.TGridLayout
调整 TGridLayout 的子项的大小以适合通过ItemHeight和ItemWidth属性指定的大小。 [...]但是,您可以使用子控件的边距属性自定义子控件的大小。
- >将ItemHeight和ItemWidth设置为(ImageSize + MarginSize)
- >将图像的边距设置为(MarginSize)