Pertama-tama, saya ingin meminta maaf jika saya gagal mematuhi aturan SO, karena ini pertanyaan pertama saya.
Apa yang ingin saya capai adalah memiliki gridLayout persegi di halaman saya. Perilaku tersebut harus setara dengan memiliki elemen dengan stretch="aspectFit".
Jika solusi yang disarankan memungkinkan saya menerapkan rasio aspek tertentu dan bukan hanya rasio aspek persegi, ini akan menjadi nilai tambah yang bagus, karena akan memungkinkan saya menyelesaikan berbagai situasi di masa mendatang. Atau kalau bisa diterapkan ke elemen Layout apa pun, alangkah baiknya juga.
Solusinya dapat diretas sesuai keinginan, dan GridLayout dapat disarangkan dengan cara apa pun yang Anda perlukan untuk mencapainya.
Saya sudah mencoba meretasnya seperti ini:
<GridLayout rows="*,auto,*" columns="*,auto,*" backgroundColor="green">
<Image row="1" col="1" src="~/Images/1px-black.png" stretch="aspectFit" width="100%"></Image>
<StackLayout row="1" col="1" orientation="vertical" backgroundColor="lightgray">
<Label text="Label 1" width="100%" height="25%" backgroundColor="red"></Label>
<Label text="Label 2" width="100%" height="25%" backgroundColor="green"></Label>
<Label text="Label 3" width="100%" height="25%" backgroundColor="blue"></Label>
<Label text="Label 4" width="100%" height="25%" backgroundColor="yellow"></Label>
</StackLayout>
</GridLayout>
Secara visual tampaknya berfungsi, tetapi isi GridLayout tidak mengisinya dengan tepat
PS: Saya baru memperhatikan pada contoh yang saya pilih, elemen tata letak yang saya coba buat persegi adalah StackLayout bersarang, tetapi idenya sama. Saya memerlukan cara untuk membuat elemen tata letak bersarang menjadi persegi.