feat: add new Toast.

This commit is contained in:
Zhang Dian
2024-09-05 01:36:10 +08:00
parent 2b42760673
commit f0b23e1bdf
13 changed files with 858 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
using Avalonia.Controls.Notifications;
using Avalonia.Metadata;
namespace Ursa.Controls;
/// <summary>
/// Represents a toast that can be shown in a window or by the host operating system.
/// </summary>
[NotClientImplementable]
public interface IToast
{
/// <summary>
/// Gets the toast message.
/// </summary>
string? Content { get; }
/// <summary>
/// Gets the <see cref="NotificationType"/> of the toast.
/// </summary>
NotificationType Type { get; }
/// <summary>
/// Gets the expiration time of the toast after which it will automatically close.
/// If the value is <see cref="TimeSpan.Zero"/> then the toast will remain open until the user closes it.
/// </summary>
TimeSpan Expiration { get; }
/// <summary>
/// Gets an Action to be run when the toast is clicked.
/// </summary>
Action? OnClick { get; }
/// <summary>
/// Gets an Action to be run when the toast is closed.
/// </summary>
Action? OnClose { get; }
}