diff --git a/demo/Semi.Avalonia.Demo.Desktop/Program.cs b/demo/Semi.Avalonia.Demo.Desktop/Program.cs index 8c96283..d42b109 100644 --- a/demo/Semi.Avalonia.Demo.Desktop/Program.cs +++ b/demo/Semi.Avalonia.Demo.Desktop/Program.cs @@ -1,5 +1,6 @@ using System; using Avalonia; +using Avalonia.Dialogs; using Avalonia.Media; namespace Semi.Avalonia.Demo.Desktop; @@ -26,6 +27,7 @@ class Program // Avalonia configuration, don't remove; also used by visual designer. public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure() + .UseManagedSystemDialogs() .UsePlatformDetect() .With(new Win32PlatformOptions()) .LogToTrace(); diff --git a/demo/Semi.Avalonia.Demo/Pages/NotificationDemo.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/NotificationDemo.axaml.cs index 0b65d5e..bdaf029 100644 --- a/demo/Semi.Avalonia.Demo/Pages/NotificationDemo.axaml.cs +++ b/demo/Semi.Avalonia.Demo/Pages/NotificationDemo.axaml.cs @@ -12,7 +12,7 @@ namespace Semi.Avalonia.Demo.Pages; public partial class NotificationDemo : UserControl { - private MainWindow? _window; + private WindowNotificationManager _manager; public NotificationDemo() { InitializeComponent(); @@ -21,14 +21,15 @@ public partial class NotificationDemo : UserControl protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e) { base.OnAttachedToVisualTree(e); - _window = VisualRoot as MainWindow; + var topLevel = TopLevel.GetTopLevel(this); + _manager = new WindowNotificationManager(topLevel){ MaxItems = 3}; } private void InfoButton_OnClick(object? sender, RoutedEventArgs e) { if (sender is Button b && b.Content is string s && Enum.TryParse(s, out NotificationType t)) { - _window?.Notify(t); + _manager.Show(new Notification(t.ToString(), "This is message", t)); } } } \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo/Views/MainWindow.axaml.cs b/demo/Semi.Avalonia.Demo/Views/MainWindow.axaml.cs index 4ff746b..aabf593 100644 --- a/demo/Semi.Avalonia.Demo/Views/MainWindow.axaml.cs +++ b/demo/Semi.Avalonia.Demo/Views/MainWindow.axaml.cs @@ -5,19 +5,8 @@ namespace Semi.Avalonia.Demo.Views; public partial class MainWindow : Window { - private readonly WindowNotificationManager _manager; public MainWindow() { InitializeComponent(); - _manager = new WindowNotificationManager(this) - { - Position = NotificationPosition.TopLeft, - MaxItems = 3 - }; - } - - internal void Notify(NotificationType t) - { - _manager.Show(new Notification(t.ToString(), "This is a notification message", t)); } } \ No newline at end of file