Je développe une application utilisant les formes xamarin pcl. J'ai besoin d'un stacklayout avec des coins arrondis. J'ai également essayé le cadre d'un conteneur à coins arrondis, mais il n'y a pas de propriété de rayon de coin disponible pour celui-ci. Je ne trouve pas de moteurs de rendu pour ios, android, uwp, windows 8.1.
S'il vous plaît, est-ce que quelqu'un peut me suggérer comment réaliser l'empilage avec des angles arrondis ainsi qu'une propriété de rayon de coin pour toutes les plates-formes .
Vous pouvez utiliser Frame et mettre StackLayout à l'intérieur. Remarque Frame prend padding 20 par défaut:
<Frame CornerRadius="10"
OutlineColor="Red"
Padding="0">
<StackLayout>
</StackLayout>
</Frame>
utiliser ce qui suit pour obtenir le résultat attendu
Contrôle Xamarin Forms: 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.cshttps://github.com/nitescua /Xamore/blob/master/Xamore.Controls.Droid/Renderers/BorderRendererVisual.cs (Notez quelques fichiers dans https://github.com/nitescua/Xamore/tree/master/Xamore.Controls. Droid/Renderers ai la compilation définie sur None, je faisais quelques tests, il faut les supprimer)
WinPhone: https://github.com/nitescua/Xamore/blob/master/Xamore.Controls.WinPhone/Renderers/BorderRenderer.cs
<!--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 filtrage de BigBasket. Tu vois comme c'est cool
Depuis que Xamarin a publié le mécanisme Effects , il est désormais possible d’implémenter un effet personnalisé sur les deux plates-formes. 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'interface utilisateur.
Une fois que vous avez créé une RoundCornersEffect
personnalisée héritant de RoutingEffect
, déclarée une propriété attachée CornerRadius
et implémenté PlatformEffect
sur chaque plate-forme, elle peut être appliquée à tout agencement ou à tout contrôle Xamarin.Forms
comme ceci:
<StackLayout effects:RoundCornersEffect.CornerRadius="48"/>
avec un rayon de coins codé en dur ou une valeur provenant de ressources
<BoxView effects:RoundCornersEffect.CornerRadius="{StaticResource LargeCornerRadius}" />
Voici un lien vers exemples complets de mise en oeuvre et d'utilisation .
J'avais récemment le même besoin et j'ai donc créé un moteur de rendu personnalisé pour iOS et Android. Je l'ai publié sous forme de Nuget que vous pouvez trouver ici . Le code source est disponible sur GitHub , et voici un petit "How-To"
J'espère que cela t'aides! Il est très facile à utiliser (identique à ContentView, qui est à la base), bien que cela soit compilé pour .NET Standard, mais vous pouvez aussi extraire le code dans votre PCL.
Vous pouvez définir des angles arrondis pour toute disposition, vue ou cellule (StackLayout, Grid, ListView)
http://venkyxamarin.blogspot.in/2017/12/how-to-set-corner-radius-for-view.html#more