Различия с WPF .NET

В этой статье описываются различия между Windows Presentation Foundation (WPF) в .NET и платформа .NET Framework. WPF для .NET — это платформа с открытым исходным кодом, скопированная из исходного WPF для платформа .NET Framework исходного кода.

Существует несколько функций платформа .NET Framework, которые не поддерживаются .NET. Дополнительные сведения о неподдерживаемых технологиях см. в платформа .NET Framework технологиях, недоступных в .NET.

Важно!

Документация по рабочему столу для .NET 7 и .NET 6 находится в стадии разработки.

Проекты в стиле SDK

В .NET используются файлы проекта в стиле SDK. Эти файлы проектов отличаются от традиционных файлов проектов .NET Framework, управляемых Visual Studio. Чтобы перенести платформа .NET Framework приложения WPF в .NET, необходимо преобразовать проекты. Дополнительные сведения см. в статье Об обновлении классического приложения WPF до .NET 7.

Ссылки на пакет NuGet

Если приложение .NET Framework перечисляет зависимости NuGet в файле packages.config, выполните миграцию в формат <PackageReference>:

  1. В Visual Studio откройте окно Обозревателя решений.
  2. В проекте WPF щелкните правой кнопкой мыши packages.config>Перенести packages.config в PackageReference.

Upgrading to PackageReference.

Откроется диалоговое окно с вычисленными зависимостями NuGet верхнего уровня и вопросом, какие другие пакеты NuGet следует повысить до верхнего уровня. Выберите ОК, и файл packages.config будет удален из проекта, а элементы <PackageReference> будут добавлены в файл проекта.

Если в проекте используется <PackageReference>, пакеты не хранятся локально в папке Пакеты, они хранятся глобально. Откройте файл проекта и удалите все элементы <Analyzer>, которые ссылаются на папку Пакеты. Эти анализаторы автоматически добавляются к ссылкам на пакет NuGet.

Управление доступом для кода

Безопасность доступа к коду (CAS) не поддерживается .NET. Все функции, связанные с CAS, работают исходя из предположения полного доверия. WPF для .NET удаляет код, связанный с CAS. Поверхность открытого API этих типов по-прежнему существует, чтобы обеспечить успешный вызов этих типов.

Открыто определенные типы, связанные с CAS, были перемещены из сборок WPF в сборки библиотеки Core .NET. В этих сборках WPF установлена пересылка типов к новому расположению перемещенных типов.

Исходная сборка Целевая сборка Тип
WindowsBase.dll System.Security.Permissions.dll MediaPermission
MediaPermissionAttribute
MediaPermissionAudio
MediaPermissionImage
MediaPermissionVideo
WebBrowserPermission
WebBrowserPermissionAttribute
WebBrowserPermissionLevel
System.Xaml.dll System.Security.Permissions.dll XamlLoadPermission
System.Xaml.dll System.Windows.Extension.dll XamlAccessLevel

Примечание.

Чтобы свести к минимуму трения при переносе, функции хранения и извлечения информации, связанной со следующими свойствами, были оставлены в типе XamlAccessLevel.

  • PrivateAccessToTypeName
  • AssemblyNameString