2016-03-10 2 views
1

Я пытаюсь выяснить, возможно ли это через мое приложение WPF, получить доступ к встроенной службе уведомлений, которая существует в Windows 10. Я использую VS 2015 и C#. Кроме того, является ли томасштабирование одним и тем же? Они больше не похожи на Windows 10. Если да, не могли бы вы направить меня в правильном направлении к пространству имен и т. Д.?Windows 10 Уведомление WPF

Да, я искал в Интернете и только нашел toasternotification для Win 7. И это не то, что им нужно.

Благодаря

+0

См. Http://blogs.msdn.com/b/tiles_and_toasts/archive/2015/07/08/quickstart-sending-a-local-toast-notification-and-handling-activations-from-it-windows- 10.aspx, но я не знаю, работает ли он также с wpf или только с UWP – Pazi01

+0

См. Https://blogs.msdn.microsoft.com/tiles_and_toasts/2015/10/16/quickstart-handling-toast-activations-from -win32-apps-in-windows-10/для WPF/Win32 – k94ll13nn3

ответ

2

Найдено a code sample that is similar to what you need, but only does Toast Notifications.

В основном вы хотите иметь обычное приложение .NET, которое ссылается на компоненты Windows.UI.

Для использования в Windows 10 Уведомления вам нужно отредактировать файл csproj и добавить целевую платформу,

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> 
<TargetPlatformVersion>8.1</TargetPlatformVersion> 
</PropertyGroup> 

После того, как вы сделаете это, вы должны иметь возможность добавить ссылку на Windows.UI сборки.

Щелкните правой кнопкой мыши узел «Ссылки» и выберите «Windows» в левой части окна. Установите флажок для Windows.UI, Windows.Data и Windows.Foundation.

Далее в файле класса формы добавьте using Windows.UI.Notifications; для доступа к компоненту ToastManager.

После того как вы, что доступ к шаблону, который вы хотите использовать

// Get a toast XML template 
var toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastImageAndText02); 

// Fill in the text elements 
var stringElements = toastXml.GetElementsByTagName("text"); 
stringElements[0].AppendChild(toastXml.CreateTextNode("Title")); 
stringElements[1].AppendChild(toastXml.CreateTextNode("Content")); 

Here are the different Toast type enumerations.

После того, как у вас есть ссылка на шаблон Toast вы должны создать ToastNotification и отправить его в ToastNotificationManager

// Create the toast and attach event listeners 
var toast = new ToastNotification(toastXml); 
toast.Activated += ToastActivated; 
toast.Dismissed += ToastDismissed; 
toast.Failed += ToastFailed; 

// Show the toast. Be sure to specify the AppUserModelId on your application's shortcut! 
ToastNotificationManager.CreateToastNotifier("My Toast").Show(toast); 

Вы можете прикрепить события для Activated, отстраненных и невыполненных обработчики событий тоже.

+0

Я пытаюсь использовать этот совет в приложении WPF. Но я не могу найти никакой информации об «AppUserModelId», упомянутой в комментарии. –

+0

Я не могу вспомнить, если в этом случае AppUserModelID релевантен, он будет использовать текущего пользователя для его отображения, поскольку, как говорят, на сайте Microsoft есть много документации об этом [здесь] (https: // msdn. microsoft.com/en-us/library/dd378459) –

+1

Да, спасибо, я видел этот документ. В противном случае, код выше, не вызывает исключений в моем приложении WPF, но нет уведомления: / –

Смежные вопросы