diff --git a/samples/ControlCatalog/MainWindow.xaml b/samples/ControlCatalog/MainWindow.xaml index 4bae60b2a6..ae9574189a 100644 --- a/samples/ControlCatalog/MainWindow.xaml +++ b/samples/ControlCatalog/MainWindow.xaml @@ -4,5 +4,8 @@ xmlns:local="clr-namespace:ControlCatalog" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="ControlCatalog.MainWindow"> - + + + + diff --git a/samples/ControlCatalog/MainWindow.xaml.cs b/samples/ControlCatalog/MainWindow.xaml.cs index e620a77e52..4057af59ff 100644 --- a/samples/ControlCatalog/MainWindow.xaml.cs +++ b/samples/ControlCatalog/MainWindow.xaml.cs @@ -1,18 +1,43 @@ using Avalonia; using Avalonia.Controls; +using Avalonia.Controls.Notifications; using Avalonia.Markup.Xaml; +using Avalonia.Threading; using System; +using System.Threading.Tasks; namespace ControlCatalog { public class MainWindow : Window { + private readonly NotificationManager _notificationManager = new NotificationManager(); + public MainWindow() { this.InitializeComponent(); this.AttachDevTools(); //Renderer.DrawFps = true; //Renderer.DrawDirtyRects = Renderer.DrawFps = true; + + Dispatcher.UIThread.InvokeAsync(async () => + { + await Task.Delay(5000); + + _notificationManager.Show(new NotificationContent { Message = "Test1", Type = NotificationType.Information }, "Main"); + + await Task.Delay(500); + _notificationManager.Show(new NotificationContent { Message = "Test2", Type = NotificationType.Error }, "Main"); + + await Task.Delay(500); + _notificationManager.Show(new NotificationContent { Message = "Test3", Type = NotificationType.Warning }, "Main"); + + await Task.Delay(500); + _notificationManager.Show(new NotificationContent { Message = "Test4", Type = NotificationType.Success }, "Main"); + + await Task.Delay(500); + _notificationManager.Show("Test5", "Main"); + + }); } private void InitializeComponent() diff --git a/src/Avalonia.Controls/Notifications/Notification.cs b/src/Avalonia.Controls/Notifications/Notification.cs index 690dbfaac9..c7cd176513 100644 --- a/src/Avalonia.Controls/Notifications/Notification.cs +++ b/src/Avalonia.Controls/Notifications/Notification.cs @@ -1,4 +1,5 @@ using System; +using System.Reactive.Linq; using System.Threading.Tasks; using Avalonia.Controls.Primitives; using Avalonia.Interactivity; @@ -11,7 +12,34 @@ namespace Avalonia.Controls.Notifications static Notification() { - CloseOnClickProperty.Changed.AddClassHandler