在 xamarin 表单布局中删除多余的 space
remove extra space in xamarin forms layout
您好,我正在尝试使用 stackLayout.But 在 xamarin 表单中放置 2 个图像,它在 form.I 使用的空白项目的顶部添加了一些 space。
我的代码是
<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>
我得到这个输出:
Output Image 1
Output Image 2
它在页面顶部添加了一些额外的 space。如何设置布局以删除此 space?
您post的代码没有任何问题。
我认为您的应用程序是使用 Tabbed 模板创建的。如果是这样,顶部的空 space 实际上是选项卡。如此图所示。
如果您创建一个空白项目(不是 Tabbed 或 MasterDetails),它的顶部将不会有空的 spaces。如此图所示。
StackLayout 和 Grid 的默认间距为 6。在 StackLayout 上,您可以设置间距。更详细的可以参考这个Document
试试这个片段:
<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>
我认为问题在于您正在 emulators.Real 设备上进行测试,我希望不会显示此问题。
我认为您在 App.xaml.cs 页面中使用如下所示:
MainPage = new NavigationPage(new MainPage());
您可以使用 边距 属性删除顶部、底部、右侧或左侧多余的 space。让我们假设,如果我们使用 table 视图,它会在显示顶部产生 20 像素的多余部分 space。所以我们可以通过使用
来减少多余的space
<TableView Margin="0,-20,0,0" >
<TableVie/>
-20用于减少多余的20pix
您好,我正在尝试使用 stackLayout.But 在 xamarin 表单中放置 2 个图像,它在 form.I 使用的空白项目的顶部添加了一些 space。 我的代码是
<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>
我得到这个输出:
Output Image 1
Output Image 2
它在页面顶部添加了一些额外的 space。如何设置布局以删除此 space?
您post的代码没有任何问题。
我认为您的应用程序是使用 Tabbed 模板创建的。如果是这样,顶部的空 space 实际上是选项卡。如此图所示。
如果您创建一个空白项目(不是 Tabbed 或 MasterDetails),它的顶部将不会有空的 spaces。如此图所示。
StackLayout 和 Grid 的默认间距为 6。在 StackLayout 上,您可以设置间距。更详细的可以参考这个Document
试试这个片段:
<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>
我认为问题在于您正在 emulators.Real 设备上进行测试,我希望不会显示此问题。
我认为您在 App.xaml.cs 页面中使用如下所示:
MainPage = new NavigationPage(new MainPage());
您可以使用 边距 属性删除顶部、底部、右侧或左侧多余的 space。让我们假设,如果我们使用 table 视图,它会在显示顶部产生 20 像素的多余部分 space。所以我们可以通过使用
来减少多余的space<TableView Margin="0,-20,0,0" >
<TableVie/>
-20用于减少多余的20pix