Xamarin按钮边框问题

时间:2017-07-06 17:17:39

标签: android ios xaml xamarin xamarin.forms

我正在尝试使用Xamarin.forms制作应用。问题是在Android版本中,会显示按钮边框,我想删除它们。我试过了BorderColor="Transparent",但它没有用。

Border button on Android

另外,我在Text方面遇到了一些问题。事实上,我想在图标和文本之间进行一些填充(例如在F和Facebook之间)。有没有办法做到这一点 ?我如何处理有关文本大小的问题,例如iPhone 5和“Fa ... ook”?我试图让一个较小的警察,但我想有一个最好的解决方案?

Police on iPhone 5

这是我的Xaml代码:

<Grid Margin="0,20,0,0">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="100"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <Label Text="Waka'Lokos" Margin="0,20,0,0" HorizontalOptions="Center" FontSize="22.5" TextColor="White" Grid.Row="0" Grid.Column="1"/>
    <Button BackgroundColor="Transparent" FontSize="10" ContentLayout="Top" HorizontalOptions="Center" VerticalOptions="Center" x:Name="fb" Text="Facebook" Grid.Row="1" Grid.Column="0" Image="fb.png" TextColor="#FEF4CA"/>
    <Button BackgroundColor="Transparent" FontSize="10" ContentLayout="Top" HorizontalOptions="Center" VerticalOptions="Center" x:Name="contact" Text="Contact" Grid.Row="1" Grid.Column="1" Image="call.png" TextColor="#FEF4CA"/>
    <Button BackgroundColor="Transparent" FontSize="10" ContentLayout="Top" HorizontalOptions="Center" VerticalOptions="Center" x:Name="insta" Text="Insta" Grid.Row="1" Grid.Column="2" Image="insta.png" TextColor="#FEF4CA"/>
    <Button BackgroundColor="Transparent" FontSize="10" ContentLayout="Top" HorizontalOptions="Center" VerticalOptions="Center" x:Name="chants" Text="Chants" Grid.Row="2" Grid.Column="0" Image="micro.png" TextColor="#FEF4CA"/>
    <Button BackgroundColor="Transparent" FontSize="10" ContentLayout="Top" HorizontalOptions="Center" VerticalOptions="Center" x:Name="communaute" Text="Team" Grid.Row="2" Grid.Column="1" Image="team.png" TextColor="#FEF4CA"/>
    <Button BackgroundColor="Transparent" FontSize="10" ContentLayout="Top" HorizontalOptions="Center" VerticalOptions="Center" x:Name="youtube" Text="Youtube" Grid.Row="2" Grid.Column="2" Image="yt.png" TextColor="#FEF4CA"/>
    <Button BackgroundColor="Transparent" FontSize="10" ContentLayout="Top" HorizontalOptions="Center" VerticalOptions="Center" x:Name="partenaires" Text="Partner" Grid.Row="3" Grid.Column="0" Image="partner.png" TextColor="#FEF4CA"/>
    <Button BackgroundColor="Transparent" FontSize="10" ContentLayout="Top" HorizontalOptions="Center" VerticalOptions="Center" x:Name="plans" Text="Bons Plans" Grid.Row="3" Grid.Column="1" Image="money.png" TextColor="#FEF4CA"/>
    <Button BackgroundColor="Transparent" FontSize="10" ContentLayout="Top" HorizontalOptions="Center" VerticalOptions="Center" x:Name="agenda" Text="Agenda" Grid.Row="3" Grid.Column="2" Image="agenda.png" TextColor="#FEF4CA"/>
</Grid>

1 个答案:

答案 0 :(得分:4)

对于同时包含文本和图像的按钮,我总是发现最简单的方法是使用带有图像和标签的stacklayout,然后添加一个轻触手势。这样你就可以更好地控制图像和文本的定位和缩放(并且它可以解决你的边界问题)。如下所示:

<强> XAML:

  ...
  TapGestureRecognizer tap = new TapGestureRecognizer();
  tap.Tapped += HandleClickEvent;

  buttonStack.GestureRecognizers.Add(tap);
}

private void HandleClickEvent(object sender, EventArgs e)
{
  //some code here
}

<强> XAML.CS

private async void HandleClickEvent(object sender, EventArgs e)
{
  await buttonStack.FadeTo(0,250);
  buttonStack.FadeTo(1,250);
  //some code here
}

如果你想伪造一个按钮点击动画,你可以试试这个。您可以将250毫秒调整为其他内容以使感觉正确:

ZipFile.CreateFromDirectory