using System.Collections.ObjectModel; using Avalonia.Controls.Primitives; using Avalonia.Layout; using CommunityToolkit.Mvvm.ComponentModel; namespace Ursa.Demo.ViewModels; public partial class ElasticWrapPanelDemoViewModel : ObservableObject { [ObservableProperty] private Orientation _selectedOrientation; [ObservableProperty] private ScrollBarVisibility _horizontalVisibility; [ObservableProperty] private ScrollBarVisibility _verticalVisibility; [ObservableProperty] private ObservableCollection _orientations = null!; [ObservableProperty] private ObservableCollection _hScrollBarVisibilities = null!; [ObservableProperty] private ObservableCollection _vScrollBarVisibilities = null!; [ObservableProperty] private bool _isFillHorizontal; [ObservableProperty] private bool _isFillVertical; [ObservableProperty] private double? _itemWidth; [ObservableProperty] private double? _itemHeight; [ObservableProperty] private double? _itemSelfWidth; [ObservableProperty] private double? _itemSelfHeight; [ObservableProperty] private HorizontalAlignment _cmbHAlign; [ObservableProperty] private VerticalAlignment _cmbVAlign; [ObservableProperty] private ObservableCollection _cmbHAligns = null!; [ObservableProperty] private ObservableCollection _cmbVAligns = null!; public ElasticWrapPanelDemoViewModel() { SelectedOrientation = Orientation.Horizontal; HorizontalVisibility = VerticalVisibility = ScrollBarVisibility.Auto; Orientations = new ObservableCollection() { Orientation.Horizontal, Orientation.Vertical }; HScrollBarVisibilities = new ObservableCollection() { ScrollBarVisibility.Disabled, ScrollBarVisibility.Auto, ScrollBarVisibility.Hidden, ScrollBarVisibility.Visible }; VScrollBarVisibilities = new ObservableCollection(HScrollBarVisibilities); IsFillHorizontal = true; IsFillVertical = false; ItemWidth = 40d; ItemHeight = 40d; ItemSelfWidth = double.NaN; ItemSelfHeight = double.NaN; CmbHAligns = new ObservableCollection() { HorizontalAlignment.Stretch, HorizontalAlignment.Left, HorizontalAlignment.Center, HorizontalAlignment.Right }; CmbVAligns = new ObservableCollection() { VerticalAlignment.Stretch, VerticalAlignment.Top, VerticalAlignment.Center, VerticalAlignment.Bottom }; CmbHAlign = HorizontalAlignment.Stretch; CmbVAlign = VerticalAlignment.Stretch; } }