.NET Core 3 с использованием WinUI

С предварительным просмотром.NET Core 3 можно создать "настольное приложение" WinForms или WPF на платформе.NET Core.

Используя острова XAML, можно разместить элементы управления UWP в приложении WPF.

Поддерживает ли.NET Core 3 и выше непосредственно библиотеку WinUI? Или лучше всего начинать с приложения WPF и размещать элементы управления ( NavigationView и т. Д.)?

ОБНОВИТЬ

dotnet new winforms и dotnew new wpf создадут основные проекты.net для своих технологий.

Намерение (или это уже возможно, и если да: как) также поддерживать что-то вроде dotnet new uwp, где элементы управления стилем UWP "по умолчанию" (с помощью ссылки на библиотеку WinUI) вместо запуска из WPF и использования островков XAML,

2 ответа

.NET Core 3 позволяет включать Windows Desktop SDK, который содержит платформы WinForms и WPF. Этот SDK не является кроссплатформенным, работает только в Windows.

XAML Islands v1 позволяет размещать элементы управления XAML UWP в WPF и WinForms в.NET Framework и.NET Core 3. Однако в.NET Framework поддерживаются только элементы управления XAML UWP, поставляемые с ОС..NET Core 3 не имеет этого ограничения; вы можете размещать сторонние элементы управления, независимо от того, управляемые (например, написанные на C#) или собственные (например, написанные на C++ / WinRT).

WinUI 2 - это библиотека элементов управления UWP, созданная также командой UWP XAML. Качество этих элементов управления такое же, как и у элементов управления операционной системы почтового ящика. Элементы управления WinUI 2 не привязаны к последней версии Windows 10 (как это происходит с элементами управления ОС входящей почты), они работают в сборке 1703 и выше (поддержка нижнего уровня). Вы можете использовать эти элементы управления WinUI 2 внутри XAML Island в WinForms или WPF .NET Core 3, но пока не в.NET Framework.

И последнее, но не менее важное: XAML Islands v1 работает только с обновлением Windows 10 1903, даже если содержимое острова работает в более старых версиях ОС.

Некоторые ссылки:

Поддерживает ли.NET Core 3 и выше непосредственно библиотеку WinUI?

Нет. .NET Core по-прежнему является кроссплатформенной версией.NET, которая не зависит ни от UWP, ни от Windows Forms, ни от WPF. Эти десктопные платформы поставляются как отдельные компоненты только для Windows, расположенные поверх.NET Core.

WinUI (Microsoft.UI.Xaml) - набор элементов управления UWP для платформы UWP, которая нацелена uap10.0, dotnet new uwp создаст приложение UWP, которое работает на.NET Core, и вы сможете использовать Microsoft.UI.Xaml Пакет, как обычно, в таком приложении. Это все равно будет приложение UWP, а не приложение WPF.

Острова XAML обычно должны поддерживаться в приложении WPF на основе.NET Core 3. Разница здесь только в платформе времени выполнения - обычно приложения WPF запускаются поверх полной.NET Framework, теперь их можно запускать и в.NET Core 3.

Если это не работает, сообщите о проблеме на WinUI GitHub или CoreFX GitHub. Имейте в виду, что.NET Core 3 находится в своем первом публичном предварительном просмотре, поэтому этот сценарий, вероятно, еще не полностью протестирован.

Dotnet новые winforms и dotnew новые wpf теперь доступны в.NET Core 3 .. однако вам все равно нужно будет запускать их в Windows. Если вам нужна x-платформа, посмотрите на фреймворк Avalonia.

Другие вопросы по тегам