ก่อนอื่น ฉันต้องขออภัยหากไม่ปฏิบัติตามกฎ SO ใดๆ เนื่องจากนี่เป็นคำถามแรกของฉัน
สิ่งที่ฉันพยายามทำให้สำเร็จคือการมี สี่เหลี่ยมจัตุรัส gridLayout ในหน้าของฉัน ลักษณะการทำงานควรเทียบเท่ากับการมีองค์ประกอบที่มี Stretch="aspectFit"
หากวิธีแก้ปัญหาที่แนะนำสามารถให้ฉันบังคับใช้ อัตราส่วนภาพใดๆ ที่กำหนด แทนที่จะใช้แค่อัตราส่วนสี่เหลี่ยมจัตุรัสได้ ก็จะเป็นข้อดีที่ดี เพราะมันจะทำให้ฉันสามารถแก้ไขสถานการณ์หลายๆ สถานการณ์ได้ในอนาคต หรือหากนำไปใช้กับองค์ประกอบเค้าโครงใดๆ ก็ได้ก็จะดีมาก
วิธีแก้ปัญหาอาจแฮ็กได้ตามที่คุณต้องการ และ GridLayout สามารถซ้อนได้ด้วยวิธีใดก็ได้ที่คุณต้องการเพื่อให้บรรลุผลสำเร็จ
ฉันได้ลองแฮ็กมันแล้ว:
<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>
ดูเหมือนว่ามันจะใช้งานได้ แต่เนื้อหาของ GridLayout ไม่ได้เติมเต็มอย่างเหมาะสม
PS: ฉันเพิ่งสังเกตเห็นในตัวอย่างที่ฉันเลือก องค์ประกอบเค้าโครงที่ฉันพยายามสร้างเป็นสี่เหลี่ยมจัตุรัสนั้นเป็น StackLayout ที่ซ้อนกัน แต่ก็เป็นแนวคิดเดียวกัน ฉันต้องการวิธีสร้างองค์ประกอบเค้าโครงที่ซ้อนกันเป็นกำลังสอง