xamarin 表单删除 grid.rows 之间的间距不起作用
xamarin forms remove spacing between grid.rows not working
在我的 Xamarin.Forms 项目中,我有一个包含 2 行和 3 列的网格。
在第 1 行我有一个标签,在第 2 行我有一个垂直堆栈面板。
标签和堆栈面板之间似乎有一个巨大的space,我该如何删除这个spacer?
我试过使用 rowspacing=0 但它不起作用。有什么想法吗?
如果我删除堆栈面板并在不同的行中使用标签,space 将被删除...但我想保留堆栈面板
这是代码...
<Grid Grid.Row="1" Grid.Column="0" RowSpacing="0"
Margin="5"
BackgroundColor="{StaticResource backgroundColorWhite}">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" HorizontalOptions="Start"
Margin="5,5,0,0"
Text="{Binding MyUserSelections.SelectedClientName}"
TextColor="{StaticResource textColorBlack}"
FontSize="16"
FontAttributes="Bold"/>
<StackLayout Grid.Row="1" Grid.Column="0"
Orientation="Vertical"
Padding="0"
Margin="5,0,0,5"
Spacing="0">
<... elements .../>
</StackLayout>
<StackLayout Grid.Row="1" Grid.Column="1"
Padding="0"
Margin="0,0,0,5"
Spacing="0"
Orientation="Vertical"
HorizontalOptions="CenterAndExpand" >
<... elements .../>
</StackLayout>
<StackLayout Grid.Row="1" Grid.Column="2"
Padding="0"
Margin="0,0,5,0"
Spacing="0"
Orientation="Vertical"
HorizontalOptions="End" >
<... elements .../>
</StackLayout>
</Grid>
没有代码很难说:
问题是您指定了相同的行高。这就是为什么你有很大的差距。
更改高度值,它们是问题所在。
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
阅读文档:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/layouts/grid#Rows_and_Columns
希望对您有所帮助!
您正在将两个行定义设置为 *
。这意味着每个人将占用可用内容的一半 space。您应该将第一个设置为 Auto
,以便仅使用显示行内容所需的 space。 space 的其余部分将被第二行占据。
我想您也想将 Grid.ColumnSpan="3"
设置为第一个元素。它会给它更多的水平space。
像这样:
<Grid Grid.Row="1" Grid.Column="0"
RowSpacing="0"
Margin="5"
BackgroundColor="{StaticResource backgroundColorWhite}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3"
HorizontalOptions="Start"
Margin="5,5,0,0"
Text="{Binding MyUserSelections.SelectedClientName}"
TextColor="{StaticResource textColorBlack}"
FontSize="16"
FontAttributes="Bold"/>
(...)
</Grid>
在我的 Xamarin.Forms 项目中,我有一个包含 2 行和 3 列的网格。 在第 1 行我有一个标签,在第 2 行我有一个垂直堆栈面板。 标签和堆栈面板之间似乎有一个巨大的space,我该如何删除这个spacer?
我试过使用 rowspacing=0 但它不起作用。有什么想法吗?
如果我删除堆栈面板并在不同的行中使用标签,space 将被删除...但我想保留堆栈面板
这是代码...
<Grid Grid.Row="1" Grid.Column="0" RowSpacing="0"
Margin="5"
BackgroundColor="{StaticResource backgroundColorWhite}">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" HorizontalOptions="Start"
Margin="5,5,0,0"
Text="{Binding MyUserSelections.SelectedClientName}"
TextColor="{StaticResource textColorBlack}"
FontSize="16"
FontAttributes="Bold"/>
<StackLayout Grid.Row="1" Grid.Column="0"
Orientation="Vertical"
Padding="0"
Margin="5,0,0,5"
Spacing="0">
<... elements .../>
</StackLayout>
<StackLayout Grid.Row="1" Grid.Column="1"
Padding="0"
Margin="0,0,0,5"
Spacing="0"
Orientation="Vertical"
HorizontalOptions="CenterAndExpand" >
<... elements .../>
</StackLayout>
<StackLayout Grid.Row="1" Grid.Column="2"
Padding="0"
Margin="0,0,5,0"
Spacing="0"
Orientation="Vertical"
HorizontalOptions="End" >
<... elements .../>
</StackLayout>
</Grid>
没有代码很难说:
问题是您指定了相同的行高。这就是为什么你有很大的差距。 更改高度值,它们是问题所在。
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
阅读文档:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/layouts/grid#Rows_and_Columns
希望对您有所帮助!
您正在将两个行定义设置为 *
。这意味着每个人将占用可用内容的一半 space。您应该将第一个设置为 Auto
,以便仅使用显示行内容所需的 space。 space 的其余部分将被第二行占据。
我想您也想将 Grid.ColumnSpan="3"
设置为第一个元素。它会给它更多的水平space。
像这样:
<Grid Grid.Row="1" Grid.Column="0"
RowSpacing="0"
Margin="5"
BackgroundColor="{StaticResource backgroundColorWhite}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3"
HorizontalOptions="Start"
Margin="5,5,0,0"
Text="{Binding MyUserSelections.SelectedClientName}"
TextColor="{StaticResource textColorBlack}"
FontSize="16"
FontAttributes="Bold"/>
(...)
</Grid>