25

The question is basically related to Possible to use Toast Notifications from a regular .Net application?

How can I use the Windows.UI namespace from a regular (Non-Store) Win32 .NET application (Console, WinForms, WPF)?

Community
  • 1
  • 1
wollnyst
  • 1,683
  • 1
  • 17
  • 20

1 Answers1

32

Certain WinRT classes can be used from desktop apps, including portions of the Windows.UI namespace. The toast notification APIs are one such example - they can be used by both Windows Store apps and desktop apps. In the API reference section, each class page shows if the API applies to Windows Store apps or desktop apps (example for toast). There is a sample of using the toast notification APIs from a desktop app provided on MSDN.

MSDN contains a full list of the WinRT classes that are available to desktop apps.

Edit:

The ability to add a reference to the WinRT APIs is off by default in C# desktop apps. The project needs to specifically target the Windows 8 platform. To add a reference to WinRT APIs (the Windows.winmd assembly), add the following to your project file:

<PropertyGroup>
    <TargetPlatformVersion>8.0</TargetPlatformVersion>
</PropertyGroup>

After adding that to the project, a "Windows" tab will appear in the Reference Manager dialog, and you can add the Windows assembly. For more information, see 'Core Subgroup' on this MSDN article.

Nathan Kuchta
  • 13,482
  • 2
  • 26
  • 35
  • 1
    Thank you very much, that exactly the sample I'm using... What I still don't understand is how can I configure a VS 2012 (WinForm / Console) project to reference the Windows.UI namespace? Do I have to hardlink the libs? – wollnyst Oct 05 '12 at 14:34
  • Is this functionality provided through the WinRT assembly or through the desktop .net assembly? – N_A Oct 05 '12 at 14:40
  • I don't see any WinRT apis in there. It uses functionality shared between win32 and WinRT, but no actual WinRT. – N_A Oct 05 '12 at 14:50
  • If you copy paste from the answer and get crazy trying to understand why VS wouldn't parse the .proj file, it turned out invisible characters get inserted in the XML just before the last "p" (using Chrome to copy, notepad++ to paste). – Guillaume86 Sep 06 '13 at 12:56
  • @Guillaume86 Sorry for the badly formed XML, I've fixed the snippet. – Nathan Kuchta Sep 06 '13 at 14:46
  • No problem I didn't know it was fixable, was thinking it was a syntax coloring bug – Guillaume86 Sep 06 '13 at 16:02