wake-up-neo.com

Separatoren in Xamarin.Forms

Ich möchte horizontale Trennzeichen Zeilen in einem Formular verwenden. Soweit ich erfahren habe, bietet Xamarin.Forms keine.

Könnte jemand einen Ausschnitt für Trennzeichen bereitstellen?

UPDATE 1

Nach Jasons Vorschlag sieht das gut aus:

// draws a separator line and space of 5 above and below the separator    
new BoxView() { Color = Color.White, HeightRequest = 5  },
new BoxView() { Color = Color.Gray, HeightRequest = 1, Opacity = 0.5  },
new BoxView() { Color = Color.White, HeightRequest = 5  },

Rendert die folgende Trennlinie:

enter image description here

29
SteAp

Sie könnten versuchen, BoxView zu verwenden.

// sl is a StackLayout
sl.Children.Add(new BoxView() { Color = Color.Black, WidthRequest = 100, HeightRequest = 2 });

in meinem Test wird der Breitenanforderung jedoch nicht gefolgt. Dies kann ein Fehler sein oder andere Einstellungen stören ihn.

39
Jason

Es gibt tatsächlich eine Methode zum Anzeigen der Trennzeichen in Xamarin.Forms:

myListView.SeparatorVisibility = Xamarin.Forms.SeparatorVisibility.Default;
myListView.SeparatorColor = Color.FromHex("C8C7CC");

Und zu verstecken:

myListView.SeparatorVisibility = Xamarin.Forms.SeparatorVisibility.None;

Ich hoffe es hilft!

9
barrast

@ Jason Zusätzlich zur Antwort von Jason sollten Sie VerticalOptions einstellen, um HeightRequest verwenden zu können, und HorizontalOptions, um WidthRequest zu verwenden. Die Standardwerte sind gefüllt, daher reagiert sie nicht . Beispielausgabe

<BoxView   VerticalOptions="Center"
           HorizontalOptions="Center"
           HeightRequest="1"
           WidthRequest="50"  
           Color="#5b5d68"></BoxView>

 enter image description here

6
Umit

Das Hinzufügen eines 1-Pixel-Stapels funktioniert für mich (in einem vertikalen Stapel):

// Add a black line
MyVerticalStackLayout.Children.Add(
    new StackLayout { 
        HeightRequest = 1, 
        BackgroundColor = Color.Black, 
        HorizontalOptions = LayoutOptions.FillAndExpand
     }    
);
3
noelicus

Eine andere Möglichkeit, BoxView in einem StackLayout mit Xaml zu implementieren.

Das sollte es tun

<StackLayout Orientation="Vertical">
       <Label HorizontalTextAlignment="Center" Text="Header" />
       <BoxView HeightRequest="1" BackgroundColor="Black" HorizontalOptions="FillAndExpand" />
</StackLayout>
2

sie können dies durch StackLayout erreichen. Definieren Sie ein StackLayout mit einer Höhe von 1 px und einer Breite von 320 px (Bildschirmgröße des iPhone). Fügen Sie es dann in das übergeordnete Layout ein.

StackLayout myLayout = new StackLayout();
myLayout.HeightRequest=1;
myLayout.WidthRequest=320;
myLayout.BackgroundColor= Color.Black;
parentLayout.Children.Add("myLayout");
2
Vinit Saxena

Sie können auch ein NuGet-Paket Xamarin.Forms.Lab verwenden, das so viele benutzerdefinierte Steuerelemente enthält, die beim Codieren hilfreich sind. 

In diesem Paket gibt es auch einen Kontrollnamen mit einem Trennzeichen, der Ihnen helfen kann.

Sie können das Paket von diesem Link herunterladen: https://www.nuget.org/packages/XLabs.Forms/

0
vishal bagdai

Sie können Ihre eigene Trennlinie in der Datei app.xaml Definieren.

<Style x:Key="Separator" TargetType="BoxView">
            <Setter Property="HeightRequest" Value="1" />
            <Setter Property="HorizontalOptions" Value="FillAndExpand" />
            <Setter Property="Color" Value="Gray" />
            <Setter Property="Margin" Value="0, 5, 0, 5" />
            <Setter Property="Opacity" Value="0.5" />
</Style>

Und benutze es als Style.

<BoxView Style="{StaticResource Separator}" />
0
Philipp K.