我正在嘗試自己做一個小 MAUI 專案,看起來 Horizo??ntalStackLayout 對子控制元件沒有影響。
這里的xaml代碼:
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="model:Game">
<Border HeightRequest="100"
Stroke="Gray"
BackgroundColor="GhostWhite"
StrokeThickness="3"
StrokeShape="RoundRectangle 10">
<VerticalStackLayout>
<Label Text="{Binding Name}"
HorizontalTextAlignment="Start"
TextColor="Black"
FontSize="30"
Margin="10, 0, 0, 10"/>
<CollectionView ItemsSource="{Binding ConsolesList}"
x:Name="ListConsole">
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="model:Console">
<HorizontalStackLayout>
<Label Text="{Binding Name}"
TextColor="Black"
Margin="10, 0, 0, 10"/>
</HorizontalStackLayout>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</VerticalStackLayout>
<Border.GestureRecognizers>
<TapGestureRecognizer Command="{Binding Source={RelativeSource AncestorType={x:Type viewmodel:MainViewModel}}, Path=TapCommand}"
CommandParameter="{Binding .}"/>
</Border.GestureRecognizers>
</Border>
</DataTemplate>
</CollectionView.ItemTemplate>
結果如下:

如您所見,第二個標簽中的控制臺名稱是垂直放置的,而不是水平放置的。
我試圖洗掉 Horizo??ntalStackLayout 并將 VerticalStackLayout 更改為水平布局,但即便如此,也沒有任何變化。我還嘗試通過使用普通 stackLayout 的水平和垂直堆疊布局來更改這兩者,并將方向設定為第一個的垂直和第二個的水平,仍然沒有。
我錯過了什么嗎?
uj5u.com熱心網友回復:
你的整個DataTemplate
<DataTemplate x:DataType="model:Console">
<HorizontalStackLayout>
<Label Text="{Binding Name}" TextColor="Black" Margin="10, 0, 0, 10"/>
</HorizontalStackLayout>
</DataTemplate>
對 中的每個專案重復一次ItemsSource。這意味著您的 UI 包含一個HorizontalStackLayout用于每個控制臺的
CollectionView有一個ItemsLayout屬性,可以設定為HorizontalList在模板中水平布局專案,而不是默認的垂直布局
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/533320.html
標籤:C#xml毛伊岛
