【发布时间】:2017-12-14 01:58:54
【问题描述】:
我正在处理网格布局中的图像,但图像下方和上方的空白空间存在问题。我希望这些带有日期的行正好在图标下方,没有任何空白,并制作大小与图片相同的图标。当我使用方面适合时,它会使图标垂直拉伸。我试图设置固定大小的行,但当我旋转手机时它产生了一个废话。
<Grid
RowSpacing="0"
VerticalOptions="Center"
>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Image Source="kafelek_1.png"
Grid.Column="0" Grid.Row="0"
></Image>
<Image Source="kafelek_2.png"
Grid.Column="1" Grid.Row="0"
></Image>
<Image Source="kafelek_3.png"
Grid.Column="2" Grid.Row="0"
></Image>
<StackLayout BackgroundColor="#0078B7"
Grid.Column="0" Grid.Row="1"
Orientation="Horizontal"
HeightRequest="20"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand">
<Image Source="trojkat.png">
</Image>
<Label Text="Temp"
x:Name="DecisionDateLabel"></Label>
</StackLayout>
<StackLayout BackgroundColor="#0078B7"
Grid.Column="1" Grid.Row="1"
Orientation="Horizontal"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand">
<Image Source="trojkat.png"></Image>
<Label Text="Temp"
x:Name="KnowledgeDateLabel"></Label>
</StackLayout>
<StackLayout BackgroundColor="#0078B7"
Grid.Column="2" Grid.Row="1"
Orientation="Horizontal"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand">
<Image Source="trojkat.png"></Image>
<Label Text="Temp"
x:Name="PollsDateLabel"></Label>
</StackLayout>
</Grid>
【问题讨论】:
-
这是因为您的图像纵横比被保留了。您正在设置第二行的高度,但您的第一行会根据宽度的大小进行缩放,因此不会发生两行之间的垂直对齐。如果你告诉我你的 2 张图片的尺寸是多少,我可以看看还有什么可以做的。是否可以根据需要调整图像大小?
-
您也可以为第一行指定高度,然后使用 2 行高度来找到您需要的比率。另一种选择是不使用网格,而是使用所有堆栈布局或相对布局
-
如果您在第一行为您的图片设置了“HeightRequest”,您将删除多余的空间。
标签: xaml layout xamarin.forms