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:
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.
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!
@ 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>
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
}
);
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>
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");
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/
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}" />