Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何减少android上按钮上文本和图像之间的空间_C#_Xaml_Xamarin.forms - Fatal编程技术网

C# 如何减少android上按钮上文本和图像之间的空间

C# 如何减少android上按钮上文本和图像之间的空间,c#,xaml,xamarin.forms,C#,Xaml,Xamarin.forms,我有一个按钮,在图像下方有一个图像和一个文本,我想在android上减少两者之间的空间,在iOS上,两者之间没有空间,我已经做了以下工作: <Grid x:Name="MainGrid"> <Grid.RowDefinitions> <RowDefinition Height="auto" /> &

我有一个按钮,在图像下方有一个图像和一个文本,我想在android上减少两者之间的空间,在iOS上,两者之间没有空间,我已经做了以下工作:

  <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。