web-dev-qa-db-fra.com

Comment ajouter une bordure à votre étiquette de formulaire Xamarin?

Bonjour chers utilisateurs de Xamarin Forms,

J'ai déjà découvert que Xamarin Froms ne prend pas immédiatement en charge les bordures d'une étiquette. Ainsi, après quelques recherches, nous ne savons toujours pas comment rendre cela possible. Est-il possible d'ajouter une bordure à l'aide du moteur de rendu personnalisé? Si oui, quelqu'un a-t-il un exemple? et sinon, quelqu'un a-t-il une autre idée hors de la boîte pour rendre cela possible. 

Merci d'avance

5
Diceble

Je pensais un peu en dehors de la boîte et ai proposé d'utiliser une vue en boîte à utiliser comme bordure .. Voici un exemple du code que j'ai écrit:

  <StackLayout x:Name="BasicInfo" Margin="10,10,10,5" Grid.Row="0" Grid.Column="0">
    <Label Text="Basic Info" FontSize="20"/>
    <BoxView Color="Black" WidthRequest ="100" HeightRequest="1"/>
     <Label x:Name="text1" />
     <Label x:Name="text2"/>
     <Label x:Name="text3"/>
     <Label x:Name="text4"/>  
  </StackLayout>

Je vais aussi ajouter une photo du résultat qu'il me donne:  enter image description here

8
Diceble

Vous pouvez ajouter une étiquette dans l'élément Frame et configurer OutlineColor for Frame:

<Frame OutlineColor="Black">
    <Label Text="My Label With Frame" />
</Frame>

Si vous souhaitez utiliser le moteur de rendu personnalisé, vous devez implémenter le moteur de rendu personnalisé pour chaque plate-forme que vous souhaitez prendre en charge (par exemple, Android, iOS, UWP, WinPhone).

13
kb0

Bien qu’il y ait déjà une réponse, la solution que j’ai trouvée vous permet de choisir les frontières que vous voulez montrer et combien.

Un correctif que j'ai utilisé consistait à envelopper l'élément qui a besoin d'une bordure dans un ContentView, à donner à ContentView un backgroundColour et un remplissage. Le code est ci-dessous

Resourcedictionary avec le style suivant déclaré

<Style TargetType="ContentView"
       x:Key="BorderContentView">
    <Setter Property="BackgroundColor"
            Value="Black" />
    <Setter Property="Padding"
            Value="1 2 1 3" />
    <!-- Tweak the values above to set your borders however you prefer -->
</Style>

A votre avis, ajoutez simplement un ContentView enveloppant et ajoutez-y le style

<ContentView Style="{DynamicResource BorderContentView}">
    <!-- Elements with a border here --> 
</ContentView>
1
Cas Nouwens

Placez votre étiquette à l'intérieur de BoxView et déclarez la propriété de bordure de BoxView.

0
Chandresh Khambhayata