feat: simplify demo.

This commit is contained in:
Dong Bin
2025-03-28 11:24:05 +08:00
parent 89b17752f3
commit c2e7a217ab

View File

@@ -1,4 +1,5 @@
using System; using System;
using System.Diagnostics;
using Avalonia; using Avalonia;
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Controls.Notifications; using Avalonia.Controls.Notifications;
@@ -23,24 +24,14 @@ public partial class CustomDemoDialog : UserControl
base.OnAttachedToVisualTree(e); base.OnAttachedToVisualTree(e);
_viewModel = this.DataContext as CustomDemoDialogViewModel; _viewModel = this.DataContext as CustomDemoDialogViewModel;
var visualLayerManager = this.FindAncestorOfType<VisualLayerManager>(); var visualLayerManager = this.FindAncestorOfType<VisualLayerManager>();
if (visualLayerManager is not null && _viewModel is not null) if (_viewModel == null) return;
{ _viewModel.NotificationManager =
_viewModel.NotificationManager = new WindowNotificationManager(visualLayerManager) { MaxItems = 3 }; WindowNotificationManager.TryGetNotificationManager(visualLayerManager, out var notificationManager)
_viewModel.ToastManager = new WindowToastManager(visualLayerManager) { MaxItems = 3 }; ? notificationManager
} : new WindowNotificationManager(visualLayerManager) { MaxItems = 3 };
_viewModel.ToastManager = WindowToastManager.TryGetToastManager(visualLayerManager, out var toastManager)
WindowNotificationManager.TryGetNotificationManager(visualLayerManager, out var manager); ? toastManager
if (manager is not null && _viewModel is not null) : new WindowToastManager(visualLayerManager) { MaxItems = 3 };
{ Debug.Assert(WindowNotificationManager.TryGetNotificationManager(visualLayerManager, out _));
Console.WriteLine(ReferenceEquals(_viewModel.NotificationManager, manager));
manager.Position = NotificationPosition.TopCenter;
}
}
protected override void OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs e)
{
base.OnDetachedFromVisualTree(e);
_viewModel?.NotificationManager?.Uninstall();
_viewModel?.ToastManager?.Uninstall();
} }
} }