Ich habe eine Xamarin App mit einem Grid, wo es ein Label und einen Eintrag gibt. Wenn ich den Text des Eintrags ändere, möchte ich, dass das Etikett sichtbar ist, und wenn es leer ist, soll es das Etikett nicht zeigen.Gitter wird nicht skaliert, wenn die Sichtbarkeit eines Kindes geändert wird
Ich habe eine Demo-App erstellt, um zu überprüfen, dass sie nichts mit meinem Code zu tun hat. Aber der folgende Code schlägt auch fehl
MainPage = new ContentPage
{
Content = new Grid
{
ColumnDefinitions = new ColumnDefinitionCollection
{
new ColumnDefinition { Width = new GridLength(1,GridUnitType.Auto) },
new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }
}
}
};
Label label;
Entry entry;
Grid mainGrid = ((Grid)((ContentPage)MainPage).Content);
mainGrid.Add(btnDelete = new MR.Gestures.StackLayout
{
Children = {
new ExtendedLabel { Style = Styles.LargeLabelIcon, Text = "\ue634", TextColor = Color.Black }
},
WidthRequest = 50
}, 0, 0);
mainGrid.Children.Add(label = new Label { Text = "TEST", IsVisible = false }, 0, 0);
mainGrid.Children.Add(entry = new Entry { }, 1, 0);
entry.TextChanged += (sender, arg) => label.IsVisible = entry.Text.Length > 0;
Hat jemand eine Idee, wie man es repariert?
Es zeigt immer noch nicht die Bezeichnung :(Das Raster ändert nicht die Größe der Spalte, so dass es Platz für das Label gibt –
Ist das das richtige Verhalten? Https://media.giphy.com/media/jpAMKvwazudOM/giphy. gif –
Ja, es ist genau das, was ich suche –