diff --git a/demo/Ursa.Demo/Pages/ElasticWrapPanelDemo.axaml b/demo/Ursa.Demo/Pages/ElasticWrapPanelDemo.axaml index c41ea21..18258f3 100644 --- a/demo/Ursa.Demo/Pages/ElasticWrapPanelDemo.axaml +++ b/demo/Ursa.Demo/Pages/ElasticWrapPanelDemo.axaml @@ -3,63 +3,59 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:u="https://irihi.tech/ursa" + xmlns:viewModels="clr-namespace:Ursa.Demo.ViewModels" + x:CompileBindings="True" + x:DataType="viewModels:ElasticWrapPanelDemoViewModel" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="Ursa.Demo.Pages.ElasticWrapPanelDemo"> - - - - - Vertical - Horizontal - - - - Auto - Disabled - Hidden - Visible - - - - Auto - Disabled - Hidden - Visible - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + @@ -137,17 +133,13 @@ - - - - - + + IsFillHorizontal="{Binding IsFillHorizontal}" + IsFillVertical="{Binding IsFillVertical}" + ItemWidth="{Binding ItemWidth}" + ItemHeight="{Binding ItemHeight}" + Orientation="{Binding SelectedOrientation}"> @@ -225,21 +217,21 @@ - - + + HorizontalScrollBarVisibility="{Binding HorizontalVisibility}" + VerticalScrollBarVisibility="{Binding VerticalVisibility}"> + IsFillHorizontal="{Binding IsFillHorizontal}" + IsFillVertical="{Binding IsFillVertical}" + ItemWidth="{Binding ItemWidth}" + ItemHeight="{Binding ItemHeight}" + Orientation="{Binding SelectedOrientation}"> @@ -352,13 +344,13 @@ + HorizontalScrollBarVisibility="{Binding HorizontalVisibility}" + VerticalScrollBarVisibility="{Binding VerticalVisibility}"> + HorizontalScrollBarVisibility="{Binding HorizontalVisibility}" + VerticalScrollBarVisibility="{Binding VerticalVisibility}"> - - - - - - - - - - \ No newline at end of file diff --git a/demo/Ursa.Demo/Pages/ElasticWrapPanelDemo.axaml.cs b/demo/Ursa.Demo/Pages/ElasticWrapPanelDemo.axaml.cs index fde0e8e..f405240 100644 --- a/demo/Ursa.Demo/Pages/ElasticWrapPanelDemo.axaml.cs +++ b/demo/Ursa.Demo/Pages/ElasticWrapPanelDemo.axaml.cs @@ -1,6 +1,5 @@ -using Avalonia; -using Avalonia.Controls; -using Avalonia.Markup.Xaml; +using Avalonia.Controls; +using Ursa.Demo.ViewModels; namespace Ursa.Demo.Pages; @@ -9,5 +8,6 @@ public partial class ElasticWrapPanelDemo : UserControl public ElasticWrapPanelDemo() { InitializeComponent(); + DataContext = new ElasticWrapPanelDemoViewModel(); } } \ No newline at end of file diff --git a/demo/Ursa.Demo/ViewModels/ElasticWrapPanelDemoViewModel.cs b/demo/Ursa.Demo/ViewModels/ElasticWrapPanelDemoViewModel.cs index 9910657..ad8e862 100644 --- a/demo/Ursa.Demo/ViewModels/ElasticWrapPanelDemoViewModel.cs +++ b/demo/Ursa.Demo/ViewModels/ElasticWrapPanelDemoViewModel.cs @@ -1,7 +1,42 @@ -using CommunityToolkit.Mvvm.ComponentModel; +using System.Collections.ObjectModel; +using Avalonia.Controls.Primitives; +using Avalonia.Layout; +using CommunityToolkit.Mvvm.ComponentModel; namespace Ursa.Demo.ViewModels; -public class ElasticWrapPanelDemoViewModel : ObservableObject +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; + + + 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 = 100d; + ItemHeight = double.NaN; + } } \ No newline at end of file