Windows UI Library: the latest Windows 10 native controls and Fluent styles for your applications
jevansaks IXMP generation should be based on the "public" metadata, not the int…
…ernal metadat. (#68)

Fix #22 

The problem is that our IXMP generated code answers for "private" types, which causes problems where the parser starts asking about types like XamlAmbientLight which it finds squirreled away in the UIElement tree. It asks about these types because "private" DependencyProperties refer to those types and our IXMP implementation returns a XamlType instance corresponding to it. That then causes the .NET runtime to try to turn the TypeName into a real type and it crashes because there's no metadata in the app's WinMDs of that typename. The parser folks recommended that we just return null for "private" types so in this change I switched the XamlMetadataProvider codegen to use the winmd file that's included in the nuget package instead of the "private" one. This way our IXMP is in sync with what's in the nuget package.

Verified that the nuget package with this fix allows XamlControlsGallery to launch again.

Tests passed: https://microsoft.visualstudio.com/WinUI/_build/results?buildId=13332466&_a=summary
Latest commit 8a6f70b Dec 11, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Initial commit Dec 4, 2018
build Update NuGet tool version from 4.4.1 to 4.9.1 (#31) Dec 5, 2018
dev IXMP generation should be based on the "public" metadata, not the int… Dec 11, 2018
docs Initial commit Dec 4, 2018
idl Initial commit Dec 4, 2018
manifest Initial commit Dec 4, 2018
test Fix TreeView content mode (#43) Dec 7, 2018
tools Back-porting external changes from the OS repo. (#55) Dec 10, 2018
winrt Initial commit Dec 4, 2018
.editorconfig Initial commit Dec 4, 2018
.gitattributes Initial commit Dec 4, 2018
.gitignore Initial commit Dec 4, 2018
Build.cmd Dummy commit to test CI (#38) Dec 5, 2018
CODE_OF_CONDUCT.md Initial commit Dec 4, 2018
CONTRIBUTING.md Initial commit Dec 4, 2018
CustomInlineTasks.targets Initial commit Dec 4, 2018
CustomTasks.sln Initial commit Dec 4, 2018
DevCmd.cmd Initial commit Dec 4, 2018
Directory.Build.props Initial commit Dec 4, 2018
LICENSE Initial commit Jul 26, 2018
MUXControls.sln Initial commit Dec 4, 2018
ProjectConfigurations.props Initial commit Dec 4, 2018
README.md fix typo (#45) Dec 6, 2018
RunTests.ps1 Update to the officially released version of Microsoft.Windows.Apps.T… Dec 4, 2018
SdkVersion.props Initial commit Dec 4, 2018
custom.props Initial commit Dec 4, 2018
dirs Initial commit Dec 4, 2018
environment.props Initial commit Dec 4, 2018
mux.controls.props Fix TreeView content mode (#43) Dec 7, 2018
nuget.config Initial commit Dec 4, 2018

README.md

Windows UI Library

The Windows UI Library (WinUI) is a set of open source Microsoft UI controls and features for the Windows UWP platform.

WinUI is the easiest way to build great Fluent Design experiences for Windows.

WinUI can be used in any Windows 10 UWP XAML app, or in a Xamarin.Forms app running on Windows 10 using native view embedding.

Using WinUI

You can download and use WinUI packages in your app using the NuGet package manager: see the Getting Started with the Windows UI Library page for more information.

Packages

NuGet Package Name Description
Microsoft.UI.Xaml Controls and features for building apps for Windows 10
Microsoft.UI.Xaml.Core.Direct Low-level APIs for creating middleware components. Not intended or required for general application use

You can also build a WinUI package yourself from source. See Contributing to the Windows UI Library for more information on building and contributing to WinUI.

Build Status

Documentation

WinUI usage documentation can be found here:

https://docs.microsoft.com/uwp/toolkits/winui

Contributing to WinUI

The WinUI team welcomes feedback and contributions!

For information on how to contribute please see Contributing to the Windows UI Library.

WinUI features

Benefits

The WinUI Library provides some useful benefits when building apps for Windows 10:

  1. Helps you stay up to date
    WinUI helps keep your app up to date with the latest versions of key controls and features of UWP XAML and the Fluent Design System

  2. Provides backward compatibility
    WinUI is backward-compatible with a wide range of Windows 10 versions: you can start building and shipping apps with new XAML features immediately as soon as they're released, even if your users aren't on the latest version of Windows 10

  3. Makes it simpler to build version adaptive apps
    You don't need version checks or conditional XAML markup to use WinUI controls or features: WinUI automatically adapts to the user's OS version

Version support

The Microsoft.UI.Xaml NuGet package requires your project to have TargetPlatformVersion >= 10.0.17134.0 and TargetPlatformMinVersion >= 10.0.14393.0 when building.

Your app's users can be on any of the following supported Windows versions:

  • Windows Insider Previews
  • October 2018 Update (17763)
  • April 2018 Update (17134)
  • Fall Creators Update (16299)
  • Creators Update (15063)
  • Anniversary Update (14393)

Some features may have a reduced or slightly different user experience on older versions, particularly on builds before 15063. This should not impact overall usability.

Contents

The Microsoft.UI.Xaml 2.0 stable package includes:

Prerelease Microsoft.UI.Xaml packages also include previews of features and controls that we are still working on, like:

The Microsoft.UI.Xaml.Core.Direct package includes:

  • XamlDirect and related APIs to improve performance for middleware components

Roadmap

For info on schedules and plans please see the high level plans see the Windows UI Library Roadmap.

Data/Telemetry

This project collects usage data and sends it to Microsoft to help improve our products and services. Read Microsoft's privacy statement to learn more.

For more information on telemetry implementation see the developer guide.