私が知る限り、これは不可能です。私は基本的に正確にあなたが「手動で」したいことをしました。しかしそれほど難しいことではありません。まず第一に、あなたは別のStackLayout
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="App.Views.TestPage">
<ContentPage.Content>
<StackLayout x:Name="OuterStackLayout">
<StackLayout>
<!-- Inner stack layout 1 -->
</StackLayout>
<StackLayout>
<!-- Inner stack layout 2 -->
</StackLayout>
</StackLayout>
</ContentPage.Content>
</ContentPage>
次のあなたのスタックレイアウトをラップする必要があります、あなたは、画面の向きに応じてOnSizeAllocated
をオーバーライドすることがあり、外側のOuterStackLayout.Orientation
を設定します
protected override void OnSizeAllocated(double width, double height)
{
base.OnSizeAllocated(width, height);
if (SizeHasChanged(width, height)) // elided, just compare width, height with the stored values
{
StoreSize(width, height); // store in private members
if (IsLandscape)
{
this.OuterStackLayout.Orientation = StackOrientation.Horizontal;
}
else
{
this.OuterStackLayout.Orientation = StackOrientation.Vertical;
}
}
}
public bool IsLandscape => _width > _height;
StackLayout
ビットの水平方向のオプションやその他のレイアウトパラメータを使ってみる必要があるかもしれませんが、基本的にこれが必要です。
私はUWPにこれがあることを知っていますが、Xamarinが現在これをサポートしているかどうかを知りたいと思っています。 – Tony
'xamlだけを使用する解決策:レイアウトを作成するレイアウトはありません。コースの1つを書くことも、コードビハインドで処理することもできますが、あなたはそれを排除しました。 – SushiHangover
@Tony uwpのドキュメントや参考文献を教えてもらえますか?たぶん私はそれを適応させることができます。 – Neuxz