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}">
-
+
@@ -400,16 +392,17 @@
+ HorizontalScrollBarVisibility="{Binding HorizontalVisibility}"
+ VerticalScrollBarVisibility="{Binding VerticalVisibility}">
-
+
+ IsFillHorizontal="{Binding IsFillHorizontal}"
+ IsFillVertical="{Binding IsFillVertical}"
+ ItemWidth="{Binding ItemWidth}"
+ ItemHeight="{Binding ItemHeight}"
+ Orientation="{Binding SelectedOrientation}">
@@ -455,13 +448,13 @@
+ HorizontalScrollBarVisibility="{Binding HorizontalVisibility}"
+ VerticalScrollBarVisibility="{Binding VerticalVisibility}">
-
+
@@ -540,16 +533,17 @@
+ HorizontalScrollBarVisibility="{Binding HorizontalVisibility}"
+ VerticalScrollBarVisibility="{Binding VerticalVisibility}">
-
+
+ IsFillHorizontal="{Binding IsFillHorizontal}"
+ IsFillVertical="{Binding IsFillVertical}"
+ ItemWidth="{Binding ItemWidth}"
+ ItemHeight="{Binding ItemHeight}"
+ Orientation="{Binding SelectedOrientation}">
@@ -634,17 +628,5 @@
-
-
-
-
-
-
-
-
-
\ 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