WPF Toast 通知

问题描述 投票:0回答:1

我是 WPF 新手,之前曾开发过 WinForms 和 WebApps,并且我的大部分应用程序都可以正常工作。我现在想添加一些 Toast 风格的通知。据我所知,没有内置任何东西可以做到这一点,我真的不想写自己的。

我尝试了几种不同的 NuGet 软件包,但由于某种原因无法使用任何软件包。我得到的最接近的是使用 Nick Stark 的 ToastNotifications,但是当代码创建通知时,它会抛出一个异常,说它在资源中找不到警告图标。我很惊讶它不是包的一部分,但已将我自己的图标添加到具有相同资源名称的资源中,但仍然说问题。

所以我的问题是,有谁知道如何解决这个问题,或者能够建议一个可以正常工作的 Toast 通知包吗?

我正在使用.net 8.0。

wpf notifications toast
1个回答
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 获取示例。

© www.soinside.com 2019 - 2024. All rights reserved.