web-dev-qa-db-fra.com

Xamarin Forms: StackLayout aux angles arrondis

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 .  enter image description here

27
Sonali

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>
35
Abdullah Tahan
6
Jay Patel
<!--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

5
prasadsunny1

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 .

2
foxanna

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.

0
Tom

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

0