using System; using Avalonia; using Avalonia.Controls; using Avalonia.Controls.Notifications; using Avalonia.Interactivity; namespace Semi.Avalonia.Demo.Pages; public partial class NotificationDemo : UserControl { private WindowNotificationManager? _manager; public NotificationDemo() { InitializeComponent(); } protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e) { base.OnAttachedToVisualTree(e); var topLevel = TopLevel.GetTopLevel(this); _manager = new WindowNotificationManager(topLevel) { MaxItems = 3 }; } private void PositionButton_OnClick(object? sender, RoutedEventArgs e) { if (sender is RadioButton b && b.Content is string s) { Enum.TryParse(s, out var t); _manager.Position = t; } } private void NormalButton_OnClick(object? sender, RoutedEventArgs e) { if (sender is Button b && b.Content is string s) { _manager?.Show(Enum.TryParse(s, out var t) ? new Notification(t.ToString(), "This is message", t) : new Notification(s, "This is message")); } } private void LightButton_OnClick(object? sender, RoutedEventArgs e) { if (sender is Button b && b.Content is string s) { Enum.TryParse(s, out var notificationType); _manager?.Show( new Notification(notificationType.ToString(), "This is message"), type: notificationType, classes: ["Light"]); } } }