Xamarin formes: StackLayout avec des coins arrondis
je développe une application utilisant xamarin forms pcl. J'ai besoin d'un stacklayout avec des coins arrondis. J'ai essayé le cadre aussi bien pour le récipient de coin arrondi mais il n'y a aucune propriété de rayon de coin disponible pour elle. Je ne trouve pas de convertisseurs pour ios,android,uwp,windows 8.1.
s'il vous Plaît quelqu'un peut-il me suggérer comment atteindre stacklayout avec des coins arrondis avec rayon de l'angle de propriété pour toutes les plateformes.
6 réponses
Vous pouvez utiliser Frame et mettre StackLayout à l'intérieur, noter Frame take padding 20 par défaut:
<Frame CornerRadius="10"
OutlineColor="Red"
Padding="0">
<StackLayout>
</StackLayout>
</Frame>
utilisez la suite pour atteindre votre résultat attendu
Xamarin Forms contrôle: https://github.com/nitescua/Xamore/blob/master/Xamore.Controls/Border.cs
iOS: https://github.com/nitescua/Xamore/blob/master/Xamore.Controls.iOS/Renderers/BorderRenderer.cs
Android: https://github.com/nitescua/Xamore/blob/master/Xamore.Controls.Droid/Renderers/BorderRenderer.cs https://github.com/nitescua/Xamore/blob/master/Xamore.Controls.Droid/Renderers/BorderRendererVisual.cs (Note certains fichiers dans https://github.com/nitescua/Xamore/tree/master/Xamore.Controls.Droid/Renderers compilation défini sur Aucun, je faisais des tests, avoir besoin de supprimer ces)
WinPhone: https://github.com/nitescua/Xamore/blob/master/Xamore.Controls.WinPhone/Renderers/BorderRenderer.cs
vous pouvez définir le coin arrondi pour n'importe quelle disposition ou vue ou cellule (StackLayout, Grid, ListView)
http://venkyxamarin.blogspot.in/2017/12/how-to-set-corner-radius-for-view.html#more
j'ai récemment eu le même besoin, donc j'ai créé un Renderer personnalisé pour iOS et Android. Je l'ai sorti comme un Nuget que vous pouvez trouver ici. Le code source est disponible sur GitHub, et ici est un peu "How-To"
Espérons que cette aide! Il est très facile à utiliser (comme un ContentView, qu'il est à sa base), bien que notez qu'il s'agit de compiler pour le Standard .NET, mais vous pouvez aussi tirer le code dans votre PCL
<!--Curved stack-->
<Frame CornerRadius="5"
HorizontalOptions="Center"
VerticalOptions="Start"
HasShadow="True"
Padding="0">
<StackLayout Padding="10,5,10,5"
Orientation="Horizontal"
BackgroundColor="White" >
<Image Source="settingsIcon"
HeightRequest="25"
WidthRequest="25"
Aspect="Fill" />
<Label Text="Filter"
FontSize="Medium"
VerticalTextAlignment="Center"
VerticalOptions="Center"/>
</StackLayout>
</Frame>
je viens d'essayer de copier les boutons de filtre de BigBasket. Voir Comment cool on dirait
Depuis Xamarin a publié Effets mécanisme, il est maintenant possible de le faire en implémentant un effet personnalisé sur les deux plateformes. Un avantage de cette approche est que les effets sont plus légers, réutilisables et peuvent être paramétrés et appliqués à n'importe quel élément de L'UI.
après avoir créé un custom RoundCornersEffect
hériter RoutingEffect
, déclare un CornerRadius
joint de propriété et de mettre en œuvre PlatformEffect
sur chaque plateforme, il peut être appliqué à n'importe quel Xamarin.Forms
disposition ou contrôle comme ceci:
<StackLayout effects:RoundCornersEffect.CornerRadius="48"/>
avec codé en dur coins de rayon ou d'une valeur à partir de ressources
<BoxView effects:RoundCornersEffect.CornerRadius="{StaticResource LargeCornerRadius}" />
Voici un lien vers mise en œuvre complète et des exemples d'utilisation.