Xamarin forms bouton sans frontières
J'essaie d'afficher une liste d'éléments cliquables dans une vue. Je voudrais ajouter un bouton avec une image et une bordure blanche (la première). J'ai découvert que les boutons de mon StackLayout/ViewCell ne peut pas rendre une frontière.
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:controls="clr-namespace:XLabs.Forms.Controls;assembly=XLabs.Forms"
x:Class="*.PlacesPage"
Title="TEST">
<ContentPage.Padding>
<OnPlatform x:TypeArguments="Thickness" iOS="0, 20, 0, 0" />
</ContentPage.Padding>
<ContentPage.Content>
<Grid>
<ListView x:Name="lvPlaces" ItemsSource="{Binding Places}" SeparatorColor="Gray" SeparatorVisibility="Default" RowHeight="120" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout Orientation="Horizontal">
<Button HorizontalOptions="Center" VerticalOptions="Center" BorderWidth="3" BorderColor="White" Text="IMG"></Button>
<Button Text="{Binding Name}" BorderWidth="0" FontSize="20" BackgroundColor="Transparent" Clicked="OnButtonClickedPlace"></Button>
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
</ContentPage.Content>
OriginalL'auteur Giu | 2015-08-10
Vous devez vous connecter pour publier un commentaire.
Êtes-vous à l'aide de Android? Si oui, alors:
OriginalL'auteur Daniel Luberda
Je suis l'aide de Xamarin.Les formes 2.3, et j'ai essayé de créer un bouton avec no border radius, une couleur d'arrière-plan sur blanc, et une bordure de couleur & largeur, et aucune des réponses ci-dessus, a travaillé pour moi.
En fait j'avais encore à définir la BorderRadius à 1 (ma largeur était de 2), ET ajouter une autre solution de contournement que j'ai juste ne peut pas comprendre :
Dans mon projet Android, j'ai ajouté un moteur de rendu Personnalisé, pour le Bouton, avec rien dedans. Absolument rien.
Ainsi, le comportement de Xamarin forms, est différent sur Android lorsque vous utilisez le moteur de rendu par Défaut, et lorsque vous utilisez un moteur de rendu personnalisé qui hérite du moteur de rendu par défaut, et pourtant sans aucune ligne de code.
Mon Moteur De Rendu:
Cela résout aussi le problème lorsque vous souhaitez supprimer l'ombre et afficher le bouton complètement transparent dans XF 2.3
travaillé parfait pour moi. Fou que nous avons pour ce faire.
Cela a fonctionné pour moi. très bizarre.
cela est dû au fait que vous êtes à l'aide de FormsAppCompatActivity qui enregistre la suite de convertisseur de Xamarin.Les formulaires.La plate-forme.Android.**AppCompat**.ButtonRenderer* au lieu de Xamarin.Les formulaires.La plate-forme.Android.ButtonRenderer
OriginalL'auteur Miiite
Il semble y avoir un problème dans Xamarin.Les formes où
Bouton
bordures de ne pas montrer sur Android lorsque leButtonRadius
est 0. (Il ne semble pas que ce problème est résolu que de Xamarin.Les formes v2.0.0.6482.) Ce n'est pas idéal car il va légèrement changer l'apparence du bouton, mais vous pouvez contourner le problème en définissantBorderRadius = 1
pour seulement Android, ou toutes les plates-formes, donnant un légèrement perceptible arrondi sur les coins.Une solution (le code)
Solution de contournement (XAML)
Ce n'est pas avec une épaisseur de frontières, la solution est de continuer à augmenter le rayon sur Android jusqu'à ce que vous voyez la frontière. Par exemple, si votre BorderWidth = 6, vous devez avoir au moins BorderRadius = 3 pour la frontière....
OriginalL'auteur patridge
Dans Xamarin.Les formes 2.5.0, le patch a été annulé :
Vous devez utiliser un moteur de rendu pour le moment...
Ce bogue a été corrigé dans la dernière version de Xamarin Forms 2.4.0 :> 36031 - "la frontière n'est pas rédigée sur Android sans BorderRadius" (PR)OriginalL'auteur Tzz
dans le projet Android aller à MainActivity et de le modifier pour être inhereted
de
à
maintenant, vous n'aurez pas de problème pour utiliser la Frontière
FormsApplicationActivity
est obsolète.OriginalL'auteur Abdullah Tahan
Eu le problème. J'ai fait deux choses à résoudre:
OriginalL'auteur Marin Shalamanov
J'ai trouvé cette solution, je ne sais pas pourquoi travaille, mais il fonctionne.
En mode d'émulation PCL
Alors vous devez faire le rendu dans android et NE RIEN faire
Alors vous n'avez qu'à appeler instancier le bouton et faire la bordure que vous souhaitez
Si personne ne sait pourquoi travaille, veuillez m'expliquer , j'ai essayé la même chose, mais sans que le rendu à l'aide de la classe Bouton normalement et si je fais cela je n'obtenez pas le résultat attendu.
Oui, ce n'est pas une réponse, mais ça fonctionne donc c'est un temporellement solution.
OriginalL'auteur CarLoOSX
dans le projet Android créer ButtonRenderer et collez le code
OriginalL'auteur