我是 WPF 新手,之前曾开发过 WinForms 和 WebApps,并且我的大部分应用程序都可以正常工作。我现在想添加一些 Toast 风格的通知。据我所知,没有内置任何东西可以做到这一点,我真的不想写自己的。
我尝试了几种不同的 NuGet 软件包,但由于某种原因无法使用任何软件包。我得到的最接近的是使用 Nick Stark 的 ToastNotifications,但是当代码创建通知时,它会抛出一个异常,说它在资源中找不到警告图标。我很惊讶它不是包的一部分,但已将我自己的图标添加到具有相同资源名称的资源中,但仍然说问题。
所以我的问题是,有谁知道如何解决这个问题,或者能够建议一个可以正常工作的 Toast 通知包吗?
我正在使用.net 8.0。
可能,您忘记在 App.xaml 中使用包含的资源字典:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/ToastNotifications.Messages;component/Themes/Default.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
另外,请确保正确初始化通知程序对象:
Notifier _notifier = new Notifier(cfg =>
{
cfg.PositionProvider = new WindowPositionProvider(
parentWindow: Application.Current.MainWindow,
corner: Corner.TopRight,
offsetX: 10,
offsetY: 10);
cfg.LifetimeSupervisor = new TimeAndCountBasedLifetimeSupervisor(
notificationLifetime: TimeSpan.FromSeconds(3),
maximumNotificationCount: MaximumNotificationCount.FromCount(5));
cfg.Dispatcher = Application.Current.Dispatcher;
});
private void Button_Click(object sender, RoutedEventArgs e)
{
_notifier.ShowWarning("Hello! Warning!", new MessageOptions { ShowCloseButton = true });
}
此设置在 Windows 10 + NET 8.0 上运行良好。 请参阅 https://github.com/starkna/ToastNotifications 获取示例。