C# 如何减少android上按钮上文本和图像之间的空间
我有一个按钮,在图像下方有一个图像和一个文本,我想在android上减少两者之间的空间,在iOS上,两者之间没有空间,我已经做了以下工作:C# 如何减少android上按钮上文本和图像之间的空间,c#,xaml,xamarin.forms,C#,Xaml,Xamarin.forms,我有一个按钮,在图像下方有一个图像和一个文本,我想在android上减少两者之间的空间,在iOS上,两者之间没有空间,我已经做了以下工作: <Grid x:Name="MainGrid"> <Grid.RowDefinitions> <RowDefinition Height="auto" /> &
<Grid x:Name="MainGrid">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button x:Name="btnApplyLeave" ContentLayout="Top,0" BackgroundColor="White" FontSize="10" TextColor="#777777"" ImageSource="applyleave.png" BorderWidth="1" BorderColor ="#ededed" Text="Apply Leave" Grid.Row="0" Grid.Column="0" VerticalOptions="Center" HorizontalOptions="Fill" HeightRequest="{Binding Width, Source={x:Reference btnApplyLeave}}" >
<Button.CornerRadius>
<OnPlatform Android="6">
</OnPlatform>
</Button.CornerRadius>
</Button>
<Button x:Name="captureIntent" ContentLayout="Top,0" ImageSource="capturescores.png" Text="Capture Scores" TextColor="#777777 FontSize="10" BorderWidth="1" BorderColor ="#ededed" BackgroundColor="White" Grid.Row="0" Grid.Column="1" VerticalOptions="Center" HorizontalOptions="Fill" HeightRequest="{Binding Width, Source={x:Reference captureIntent}}" >
<Button.CornerRadius>
<OnPlatform Android="6">
</OnPlatform>
</Button.CornerRadius>
</Button>
</Grid>
我不知道如何用一个按钮来实现这一点,但是你可以用一个TapGestureRecognitor来制作一个框架,它的作用就像一个按钮。 TapGestureRecognitor同时点击了MVVM的“单击”按钮和命令。代码需要在您的项目中进行一些调整,但您得到了以下想法:
<Frame HeightRequest="{Binding yourHeight}" CornerRadius="6" HasShadow="false"
BackgroundColor="White" BorderColor="#ededed" HorizontalOptions="Fill">
<Frame.GestureRecognizers>
<TapGestureRecognizer />
</Frame.GestureRecognizers>
<Image Source="image.png" HorizontalOptions="Center" VerticalOptions="Center"/>
<Label Text="TestText" HorizontalOptions="Center" VerticalOptions="Center"/>
</Frame>
我不知道如何用一个按钮来实现这一点,但是你可以用一个TapGestureRecognitor来制作一个框架,它的作用就像一个按钮。 TapGestureRecognitor同时点击了MVVM的“单击”按钮和命令。代码需要在您的项目中进行一些调整,但您得到了以下想法:
<Frame HeightRequest="{Binding yourHeight}" CornerRadius="6" HasShadow="false"
BackgroundColor="White" BorderColor="#ededed" HorizontalOptions="Fill">
<Frame.GestureRecognizers>
<TapGestureRecognizer />
</Frame.GestureRecognizers>
<Image Source="image.png" HorizontalOptions="Center" VerticalOptions="Center"/>
<Label Text="TestText" HorizontalOptions="Center" VerticalOptions="Center"/>
</Frame>
我发现这个问题与android平台的ContentLayout有关 如果我在android平台中将间距值设置为-200,我们可以减小间距
if (Device.RuntimePlatform == Device.Android)
{
btnApplyLeave.ContentLayout = new Button.ButtonContentLayout(Button.ButtonContentLayout.ImagePosition.Top, -200);
}
我发现这个问题与android平台的ContentLayout有关 如果我在android平台中将间距值设置为-200,我们可以减小间距
if (Device.RuntimePlatform == Device.Android)
{
btnApplyLeave.ContentLayout = new Button.ButtonContentLayout(Button.ButtonContentLayout.ImagePosition.Top, -200);
}
它工作了,但是按钮高度稍微增加了,这使它更矩形,而不是正方形是的,对不起,框架有默认的填充,所以只需在框架上设置padding=0。它工作了,但是按钮高度稍微增加了,这使它更矩形,而不是正方形是的,对不起,框架有默认的填充,因此,只需在帧上设置padding=0。