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

18,832

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.

Share:
18,832

Related videos on Youtube

wollnyst
Author by

wollnyst

Updated on September 15, 2022

Comments

  • wollnyst
    wollnyst over 1 year

    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)?

  • wollnyst
    wollnyst over 11 years
    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?
  • N_A
    N_A over 11 years
    Is this functionality provided through the WinRT assembly or through the desktop .net assembly?
  • N_A
    N_A over 11 years
    I don't see any WinRT apis in there. It uses functionality shared between win32 and WinRT, but no actual WinRT.
  • Guillaume86
    Guillaume86 over 10 years
    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).
  • Nathan Kuchta
    Nathan Kuchta over 10 years
    @Guillaume86 Sorry for the badly formed XML, I've fixed the snippet.
  • Guillaume86
    Guillaume86 over 10 years
    No problem I didn't know it was fixable, was thinking it was a syntax coloring bug