2

嗨,我正在尝试使用 stackLayout 在 xamarin 表单中放置 2 个图像。但它在表单顶部添加了一些空间。我使用了空白项目。我的代码是

<StackLayout>

    <Image Source="review.jpg"
               BackgroundColor="Transparent"
        WidthRequest="300"
        HeightRequest="100"
        VerticalOptions="Start" HorizontalOptions="FillAndExpand"
        FlexLayout.Grow="1">
        <Image.GestureRecognizers>
            <TapGestureRecognizer Tapped="Navigate_review"/>
        </Image.GestureRecognizers>
    </Image>

    <Image Source="upload.jpg"
               BackgroundColor="Transparent"
        WidthRequest="320"
        HeightRequest="100"
        VerticalOptions="Start" HorizontalOptions="FillAndExpand"
        FlexLayout.Grow="1">
        <Image.GestureRecognizers>
            <TapGestureRecognizer Tapped="Navigate_upload"/>
        </Image.GestureRecognizers>
    </Image>
</StackLayout>

我得到这个输出:

输出图像 1
输出图像 2

它在页面顶部增加了一些额外的空间。如何设置布局以删除此空间?

4

5 回答 5

1

您发布的代码没有任何问题。我认为您的应用程序是使用选项卡式模板创建的。如果是这样的话,顶部的空白空间实际上是选项卡。如图所示。 标签式

如果您创建一个空白项目(不是 Tabbed 或 MasterDetails),它的顶部不会有空格。如图所示。 在此处输入图像描述

于 2019-03-19T05:47:33.117 回答
1

您可以使用Margin属性删除顶部、底部、右侧或左侧的多余空间。假设,如果我们使用表格视图,它会在显示器顶部产生 20 像素的多余空间。所以我们可以通过使用来减少多余的空间

<TableView Margin="0,-20,0,0" >
<TableVie/>

-20用于减少多余的 20pix

于 2019-10-09T16:03:35.857 回答
0

StackLayoutGrid的默认间距为 6。在 StackLayout 上,您可以设置 Spacing。更多详细信息,您可以参考此文档

试试这个片段:

 <StackLayout
        Spacing="0">
        <Image
            Source="hintsicon"
            BackgroundColor="Transparent"
            WidthRequest="300"
            HeightRequest="100"
            Aspect="Fill"
            VerticalOptions="Start"
            HorizontalOptions="FillAndExpand">
            <Image.GestureRecognizers>
                <TapGestureRecognizer
                    Tapped="Navigate_review" />
            </Image.GestureRecognizers>
        </Image>
        <Image
            Source="hintsicon"
            BackgroundColor="Transparent"
            WidthRequest="320"
            HeightRequest="100"
            Aspect="Fill"
            VerticalOptions="Start"
            HorizontalOptions="FillAndExpand">
            <Image.GestureRecognizers>
                <TapGestureRecognizer
                    Tapped="Navigate_upload" />
            </Image.GestureRecognizers>
        </Image>
    </StackLayout>
于 2019-03-19T05:50:19.483 回答
0

我认为问题在于您正在模拟器上进行测试。我希望真实设备不会显示此问题。

于 2019-03-19T06:40:09.790 回答
0

我认为您在 App.xaml.cs 页面中使用如下:

MainPage = new NavigationPage(new MainPage());
于 2019-06-06T11:06:44.747 回答