Xamarin属性“内容”已设置多次

时间:2019-11-18 21:54:28

标签: xamarin xamarin.forms xamarin.android xamarin.ios

我有问题。我想创建一个自定义标头,所以我创建了这个stacklayout:

<StackLayout VerticalOptions="Start" HeightRequest="50" HorizontalOptions="CenterAndExpand">
    <Image HorizontalOptions="Start" Source="Logo.png"/>
    <Image HorizontalOptions="Start" Source="Title_Dark.png"/>
</StackLayout>

现在,我想将其放在以下代码上方:

<ContentPage.Content>
    <ListView x:Name="ListViewMain" VerticalOptions="FillAndExpand" BackgroundColor="#212121" SelectionMode="None">
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell>
                    <StackLayout>
                        <Label HeightRequest="1" BackgroundColor="#E3E3E3" />
                        <Grid x:Name="GridMain">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="40" x:Name="Row0_Height"/>
                                <RowDefinition Height="180" x:Name="Row1_Height"/>
                                <RowDefinition Height="180" x:Name="Row2_Height"/>
                                <RowDefinition Height="40" x:Name="Row3_Height"/>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="40" x:Name="Column0_Width" />
                                <ColumnDefinition Width="*" x:Name="Column1_Width" />
                                <ColumnDefinition Width="40" x:Name="Column2_Width" />
                            </Grid.ColumnDefinitions>
                            <Label Text="{Binding Creator}" TextColor="White" FontSize="Body" FontAttributes="Bold" Grid.Column="1" Grid.Row="0" VerticalOptions="Center" HorizontalOptions="Start"/>
                            <Image Source="VoteUp.png" VerticalOptions="End" HorizontalOptions="Center" Grid.Row="1" Grid.Column="0">
                                <Image.GestureRecognizers>
                                    <TapGestureRecognizer Tapped="imgVoteUp_Clicked" />
                                </Image.GestureRecognizers>
                            </Image>
                            <Image Source="VoteDown.png" VerticalOptions="Start" HorizontalOptions="Center" Grid.Row="2" Grid.Column="0">
                                <Image.GestureRecognizers>
                                    <TapGestureRecognizer Tapped="imgVoteDown_Clicked" />
                                </Image.GestureRecognizers>
                            </Image>
                            <Image Source="{Binding ImageLocation}" Margin="0, 0, 20, 0" Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="1" Grid.RowSpan="2" BackgroundColor="AliceBlue" VerticalOptions="Fill" HorizontalOptions="Fill"/>
                            <Image Source="Favorite.png" Grid.Row="3" Grid.Column="1" HorizontalOptions="Start">
                                <Image.GestureRecognizers>
                                    <TapGestureRecognizer Tapped="imgFavorite_Clicked" />
                                </Image.GestureRecognizers>
                            </Image>
                            <Image Source="Send_Dark.png" Grid.Row="3" Grid.Column="1" HorizontalOptions="End"/>
                            <Image Source="Save_Dark.png" Grid.Row="3" Grid.Column="2" HorizontalOptions="End"/>
                        </Grid>
                    </StackLayout>
                </ViewCell>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</ContentPage.Content>

但是当我将其放在<ContentPage.Content>标签下时,它会出现以下错误:

  

“内容”属性设置了多次

当我将其放在<ContentPage.Content>标签上方时,我的整个屏幕都是标题。 我该如何解决?

1 个答案:

答案 0 :(得分:2)

Content只能具有一个子元素。如果要具有多个子元素,则需要将它们放置在布局容器中(GridStackLayout等)