2017-07-06 14 views
2

私はXamarin.formsを使ってアプリケーションを作ろうとしています。問題はAndroidバージョンでは、ボタンの境界線が表示されているので、削除したいと考えています。私はBorderColor="Transparent"を試しましたが、動作しませんでした。またXamarinボタンの境界の問題

Border button on Android

、私はテキストといくつかの問題をしました。実際、アイコンとテキストの間にいくつかのパディング(例えば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> 

答えて

4

、私はいつもそれが最も簡単なだけで画像とラベルとstacklayoutを使用することがわかってきましたし、タップジェスチャーを追加します。そうすることで、イメージとテキストの位置とスケーリングをより細かく制御できるようになります(境界問題を処理する)。だから、のようなもの:

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 
} 
+0

それは非常に素晴らしい動作し、すべての私の問題が消えた!私はボタンには効果がありませんが、それは働きます。たくさんありがとうございます –

+0

私はボタンフェード効果をタップして偽装する方法を含むように投稿を編集しました。それは完璧ではないし、あなたはそれがなければそれがより好きかもしれないが、それはショットの価値がある。また、問題が十分に解決されている場合は、「受け入れ済み」とマークしてください – WMartin

関連する問題