| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- using Avalonia.Controls;
- using Avalonia.Controls.Primitives;
- using Avalonia.Interactivity;
- namespace ControlCatalog.Pages
- {
- public partial class DrawerPageCompactPage : UserControl
- {
- private bool _isLoaded;
- public DrawerPageCompactPage()
- {
- InitializeComponent();
- }
- protected override void OnLoaded(RoutedEventArgs e)
- {
- base.OnLoaded(e);
- _isLoaded = true;
- DemoDrawer.Opened += OnDrawerStatusChanged;
- DemoDrawer.Closed += OnDrawerStatusChanged;
- }
- protected override void OnUnloaded(RoutedEventArgs e)
- {
- base.OnUnloaded(e);
- DemoDrawer.Opened -= OnDrawerStatusChanged;
- DemoDrawer.Closed -= OnDrawerStatusChanged;
- }
- private void OnDrawerStatusChanged(object? sender, System.EventArgs e) => UpdateStatus();
- private void OnLayoutChanged(object? sender, SelectionChangedEventArgs e)
- {
- if (!_isLoaded)
- return;
- DemoDrawer.DrawerLayoutBehavior = LayoutCombo.SelectedIndex switch
- {
- 0 => DrawerLayoutBehavior.CompactOverlay,
- 1 => DrawerLayoutBehavior.CompactInline,
- _ => DrawerLayoutBehavior.CompactOverlay
- };
- }
- private void OnCompactLengthChanged(object? sender, RangeBaseValueChangedEventArgs e)
- {
- if (!_isLoaded)
- return;
- DemoDrawer.CompactDrawerLength = e.NewValue;
- CompactLengthText.Text = ((int)e.NewValue).ToString();
- }
- private void OnDrawerLengthChanged(object? sender, RangeBaseValueChangedEventArgs e)
- {
- if (!_isLoaded)
- return;
- DemoDrawer.DrawerLength = e.NewValue;
- DrawerLengthText.Text = ((int)e.NewValue).ToString();
- }
- private void OnMenuItemClick(object? sender, RoutedEventArgs e)
- {
- if (!_isLoaded)
- return;
- if (sender is not Button button)
- return;
- var item = button.Tag?.ToString() ?? "Home";
- DetailTitleText.Text = item;
- DetailPage.Header = item;
- DemoDrawer.IsOpen = false;
- }
- private void UpdateStatus()
- {
- StatusText.Text = $"Drawer: {(DemoDrawer.IsOpen ? "Open" : "Closed")}";
- }
- }
- }
|