using System; using Avalonia; using Avalonia.Controls; using Avalonia.Data; using Avalonia.Markup.Xaml; namespace AutoCat.Views; public partial class PlateView : UserControl { #region Dependency properties public static readonly StyledProperty NumberProperty = AvaloniaProperty.Register(nameof(Number)); #endregion #region Properties public string Number { get => (string)GetValue(NumberProperty); set => SetValue(NumberProperty, value); } #endregion public const double AspectRatio = 112.0 / 520.0; static PlateView() { NumberProperty.Changed.AddClassHandler((v, e) => v.NumberChanged(e)); } public PlateView() { InitializeComponent(); } private void NumberChanged(AvaloniaPropertyChangedEventArgs e) { if (e.NewValue is not string newNumber) return; var number = new PlateNumber(newNumber); NumberBox.Text = number.MainPart(); RegionBox.Text = number.Region(); } private void UserControl_SizeChanged(object sender, SizeChangedEventArgs e) { if (Bounds.Height > 0) { Console.WriteLine($"=== new height: {Bounds.Height}"); } } }