【发布时间】:2021-01-06 06:09:47
【问题描述】:
我有以下 XAML 代码,目的是将字母水平居中放在屏幕中间。但是,此代码仍将项目放在左侧。
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
x:Class="App1.MainPage"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
<StackLayout BackgroundColor="Aqua" Orientation="Horizontal" HorizontalOptions="Center">
<CollectionView BackgroundColor="Beige" HorizontalOptions="Center">
<CollectionView.ItemsSource>
<x:Array Type="{x:Type x:String}">
<x:String>A</x:String>
<x:String>B</x:String>
<x:String>C</x:String>
<x:String>D</x:String>
<x:String>E</x:String>
<x:String>F</x:String>
<x:String>G</x:String>
<x:String>H</x:String>
</x:Array>
</CollectionView.ItemsSource>
<CollectionView.ItemsLayout>
<LinearItemsLayout Orientation="Horizontal" ItemSpacing="20"/>
</CollectionView.ItemsLayout>
<CollectionView.ItemTemplate>
<DataTemplate>
<Label Text="{Binding .}" HorizontalOptions="Center"/>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</StackLayout>
</ContentPage>
我该怎么做?
【问题讨论】:
-
HorizontalOptions="Center"在您的Label上。 -
这不起作用。它只会将标签内的字母居中,而不是 CollectionView 内的标签。
-
不,将 Label 置于其容器内的中心。但是,对于水平布局,我不确定它如何确定每个元素的宽度。您可能需要将标签放在布局内并使用它的 HorizontalOptions 和宽度设置
-
好吧,我的错。但是,这仍然不起作用。我更新了我的问题中的示例。
-
您是否阅读了我在评论中提出的建议?
标签: xamarin.forms