【问题标题】:Xamarin Button border issueXamarin 按钮边框问题
【发布时间】:2017-12-10 20:06:52
【问题描述】:

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

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

这是我的 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>

【问题讨论】:

    标签: android ios xaml xamarin xamarin.forms


    【解决方案1】:

    对于同时包含文本和图像的按钮,我一直认为最简单的方法是使用带有图像和标签的堆栈布局,然后向其添加轻击手势。这样您就可以更好地控制图像以及文本的定位和缩放(并且它会处理您的边框问题)。所以像:

    XAML:

    <StackLayout x:Name="buttonStack" WidthRequest="50">
        <Image Source="fb.png" Aspect="AspectFit" HorizontalOptions="CenterAndExpand"/>
        <Label Text="Facebook" HorizontalOptions="CenterAndExpand" HorizontalTextAlignment="Center"/>
    </StackLayout>
    

    XAML.CS

      ...
      TapGestureRecognizer tap = new TapGestureRecognizer();
      tap.Tapped += HandleClickEvent;
    
      buttonStack.GestureRecognizers.Add(tap);
    }
    
    private void HandleClickEvent(object sender, EventArgs e)
    {
      //some code here
    }
    

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

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

    【讨论】:

    • 效果很好,我所有的问题都消失了!我对按钮没有效果,但它可以工作。非常感谢
    • 我编辑了帖子以包含一种伪造点击时按钮淡入淡出效果的方法。它并不完美,没有它你可能会更喜欢它,但值得一试。另外,如果它充分解决了您的问题,请将答案标记为“已接受”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    相关资源
    最近更新 更多