まず、初めての質問なので、SO のルールに違反していたら申し訳ありません。
私が達成しようとしているのは、私のページに正方形の gridLayout があることです。この動作は、stretch="aspectFit" を持つ要素を持つことと同等である必要があります。
提案された解決策により、正方形の 1 つではなく任意のアスペクト比を強制できる場合、将来的に複数の状況を解決できるようになるため、これは良いプラスになります。または、任意の Layout 要素に適用できれば、それもいいでしょう。
ソリューションは必要に応じてハッキーにすることができ、これを達成するために必要な方法で 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 ですが、同じ考えです。ネストされたレイアウト要素を正方形にする方法が必要です。