У меня есть простое приложение в Авалонии с MainView (который UserControl автоматически создается шаблоном), и в нем немного.
Я могу запустить его на эмуляторе Android, и он работает, но, похоже, у него нет ширины.
Я добавил журнал после загрузки представления, но кажется, что ширина как-то не рассчитана. Я получаю только NaN.
public MainView()
{
InitializeComponent();
this.Loaded += this.MainView_Loaded;
}
private void MainView_Loaded(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
{
Debug.WriteLine($"{this.Width}");
}
Есть ли способ заставить этот расчет или правильно прочитать ширину для устройства Android?
Я также пытался выполнить код, специфичный для платформы, чтобы получить ширину представления и записать ее куда-нибудь, но мне не удалось найти точку входа из MainActivity.cs для выполнения кода после создания приложения.





Кажется, Width вообще не используется при работе на Android?
Есть еще одно свойство Bounds, которое делает то же самое, но его использование более раздражает:
private void MainView_PropertyChanged(object? sender, AvaloniaPropertyChangedEventArgs e)
{
switch (e.Property.Name)
{
case "Bounds":
Debug.WriteLine($"{((Rect)e.NewValue!).Width};
break;
}
}