У меня есть простое приложение в Авалонии с 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;
}
}