Merge pull request #261 from irihitech/ElasticWrapPanel
Add ElasticWrapPanel control
This commit is contained in:
54
demo/Ursa.Demo/ViewModels/ElasticWrapPanelDemoViewModel.cs
Normal file
54
demo/Ursa.Demo/ViewModels/ElasticWrapPanelDemoViewModel.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
using Avalonia.Controls.Primitives;
|
||||
using Avalonia.Layout;
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
|
||||
namespace Ursa.Demo.ViewModels;
|
||||
|
||||
public partial class ElasticWrapPanelDemoViewModel : ObservableObject
|
||||
{
|
||||
[ObservableProperty] private Orientation _selectedOrientation = Orientation.Horizontal;
|
||||
[ObservableProperty] private ScrollBarVisibility _horizontalVisibility = ScrollBarVisibility.Auto;
|
||||
[ObservableProperty] private ScrollBarVisibility _verticalVisibility = ScrollBarVisibility.Auto;
|
||||
|
||||
[ObservableProperty] private bool _isFillHorizontal;
|
||||
[ObservableProperty] private bool _isFillVertical;
|
||||
[ObservableProperty] private double _itemWidth = 40d;
|
||||
[ObservableProperty] private double _itemHeight = 40d;
|
||||
|
||||
[ObservableProperty] private bool _autoWidth = true;
|
||||
[ObservableProperty] private bool _autoHeight = true;
|
||||
[ObservableProperty] private double _itemSelfWidth = double.NaN;
|
||||
[ObservableProperty] private double _itemSelfHeight = double.NaN;
|
||||
|
||||
[ObservableProperty] private HorizontalAlignment _cmbHAlign = HorizontalAlignment.Left;
|
||||
[ObservableProperty] private VerticalAlignment _cmbVAlign = VerticalAlignment.Stretch;
|
||||
|
||||
private double _oldItemSelfWidth;
|
||||
private double _oldItemSelfHeight;
|
||||
|
||||
partial void OnAutoWidthChanged(bool value)
|
||||
{
|
||||
if (value)
|
||||
{
|
||||
_oldItemSelfWidth = ItemSelfWidth;
|
||||
ItemSelfWidth = double.NaN;
|
||||
}
|
||||
else
|
||||
{
|
||||
ItemSelfWidth = _oldItemSelfWidth;
|
||||
}
|
||||
}
|
||||
|
||||
partial void OnAutoHeightChanged(bool value)
|
||||
{
|
||||
if (value)
|
||||
{
|
||||
_oldItemSelfHeight = ItemSelfHeight;
|
||||
ItemSelfHeight = double.NaN;
|
||||
}
|
||||
else
|
||||
{
|
||||
ItemSelfHeight = _oldItemSelfHeight;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -36,6 +36,7 @@ public class MainViewViewModel : ViewModelBase
|
||||
MenuKeys.MenuKeyDisableContainer => new DisableContainerDemoViewModel(),
|
||||
MenuKeys.MenuKeyDrawer => new DrawerDemoViewModel(),
|
||||
MenuKeys.MenuKeyDualBadge => new DualBadgeDemoViewModel(),
|
||||
MenuKeys.MenuKeyElasticWrapPanel => new ElasticWrapPanelDemoViewModel(),
|
||||
MenuKeys.MenuKeyEnumSelector => new EnumSelectorDemoViewModel(),
|
||||
MenuKeys.MenuKeyForm => new FormDemoViewModel(),
|
||||
MenuKeys.MenuKeyImageViewer => new ImageViewerDemoViewModel(),
|
||||
|
||||
@@ -23,6 +23,7 @@ public class MenuViewModel: ViewModelBase
|
||||
new() { MenuHeader = "Divider", Key = MenuKeys.MenuKeyDivider },
|
||||
new() { MenuHeader = "Drawer", Key = MenuKeys.MenuKeyDrawer },
|
||||
new() { MenuHeader = "DualBadge", Key = MenuKeys.MenuKeyDualBadge },
|
||||
new() { MenuHeader = "ElasticWrapPanel", Key = MenuKeys.MenuKeyElasticWrapPanel },
|
||||
new() { MenuHeader = "Enum Selector", Key = MenuKeys.MenuKeyEnumSelector },
|
||||
new() { MenuHeader = "Form", Key = MenuKeys.MenuKeyForm },
|
||||
new() { MenuHeader = "Icon Button", Key = MenuKeys.MenuKeyIconButton },
|
||||
@@ -69,6 +70,7 @@ public static class MenuKeys
|
||||
public const string MenuKeyDisableContainer = "DisableContainer";
|
||||
public const string MenuKeyDrawer = "Drawer";
|
||||
public const string MenuKeyDualBadge = "DualBadge";
|
||||
public const string MenuKeyElasticWrapPanel = "ElasticWrapPanel";
|
||||
public const string MenuKeyEnumSelector = "EnumSelector";
|
||||
public const string MenuKeyForm = "Form";
|
||||
public const string MenuKeyImageViewer = "ImageViewer";
|
||||
|
||||
Reference in New Issue
Block a user