Ксамарин.Формы-ярлыки StackLayout идущие вне ширины прибора
Можно ли задать процентную ширину элементов?
Проблема, которую я получил, заключается в том, что 2-я метка нажимает кнопку с экрана, как вы можете заставить метку занимать только доступное пространство. Я попробовал установить минимальную ширину элементов.
new StackLayout
{
Orientation = StackOrientation.Horizontal,
Spacing = 0,
Children = {
new Label() { Text = "TITLE", HorizontalOptions = LayoutOptions.Start},
new Label() { Text = "fsdf dsfsd fsdfsdfs ewtrey vjdgyu jhy jgh tyjht rhyrt rgtu gtr ujtrey gt yu tgrt uh tyui y5r rtuyfgtj yrjhrytjtyjy jty t ruy ujh i rt", HorizontalOptions = LayoutOptions.Center, LineBreakMode = LineBreakMode.WordWrap},
new Button() { Text = "wee", HorizontalOptions = LayoutOptions.EndAndExpand}
}
},
1 ответ:
Попробуйте использовать OnSizeAllocated (двойная ширина, двойная высота),
Код в вашем Xamarin.Страницы Форм
protected override void OnSizeAllocated(double width, double height) { base.OnSizeAllocated(width, height); Metrics.Instance.Width=width; Metrics.Instance.Height=height; }
Синглетный класс для сохранения ширины и высоты и проверки изменения ориентации
public class Metrics { private static Metrics _instance; protected SessionData () { } public double Width{ get; set; } //Width public double Height{ get; set; } //Height }
Создание Stacklayout
var StackchildSize = Metrics.Width/3; new StackLayout { Orientation = StackOrientation.Horizontal, Spacing = 0, Children = { new Label() { Text = "TITLE", HorizontalOptions = LayoutOptions.Start WidthRequest=stackChildSize}, new Label() { Text = "<Your Text>", WidthRequest=stackChildSize,}, new Button() { Text = "wee", HorizontalOptions = LayoutOptions.EndAndExpand, WidthRequest=stackChildSize,} }
},