Différences dans WPFDifferences in WPF

Cet article décrit les différences entre les Windows Presentation Foundation (WPF) sur .NET Core et les .NET Framework.This article describes the differences between Windows Presentation Foundation (WPF) on .NET Core and .NET Framework. WPF pour .NET Core est une infrastructure Open source dupliquée à partir du WPF d’origine pour .NET Framework code source.WPF for .NET Core is an open-source framework forked from the original WPF for .NET Framework source code.

Il existe quelques fonctionnalités de .NET Framework que .NET Core ne prend pas en charge.There are a few features of .NET Framework that .NET Core doesn't support. Pour plus d’informations sur les technologies non prises en charge, consultez .NET Framework technologies indisponibles sur .net Core.For more information on unsupported technologies, see .NET Framework technologies unavailable on .NET Core.

Important

La documentation du Guide du Bureau est en cours de construction.The Desktop Guide documentation is under construction.

Projets de style SDKSDK-style projects

.NET Core utilise des fichiers de projet de type SDK..NET Core uses SDK-style project files. Ces fichiers projet sont différents des fichiers de projet .NET Framework traditionnels gérés par Visual Studio.These project files are different from the traditional .NET Framework project files managed by Visual Studio. Pour migrer vos applications WPF .NET Framework vers .NET Core, vous devez convertir vos projets.To migrate your .NET Framework WPF apps to .NET Core, you must convert your projects. Pour plus d’informations, consultez migrer des applications WPF vers .net Core 3,0.For more information, see Migrate WPF apps to .NET Core 3.0.

Références du package NuGetNuGet package references

Si votre application .NET Framework répertorie ses dépendances NuGet dans un fichier packages.config , migrez vers le <PackageReference> format :If your .NET Framework app lists its NuGet dependencies in a packages.config file, migrate to the <PackageReference> format:

  1. Dans Visual Studio, ouvrez le volet Explorateur de solutions .In Visual Studio, open the Solution Explorer pane.
  2. Dans votre projet WPF, cliquez avec le bouton droit sur packages.config > migrer packages.config vers PackageReference.In your WPF project, right-click packages.config > Migrate packages.config to PackageReference.

Mise à niveau vers PackageReference

Une boîte de dialogue s’affiche avec les dépendances NuGet de niveau supérieur calculées et vous demandant quels autres packages NuGet doivent être promus au niveau supérieur.A dialog will appear showing calculated top-level NuGet dependencies and asking which other NuGet packages should be promoted to top level. Sélectionnez OK et le fichier packages.config sera supprimé du projet et les <PackageReference> éléments seront ajoutés au fichier projet.Select OK and the packages.config file will be removed from the project and <PackageReference> elements will be added to the project file.

Lorsque votre projet utilise <PackageReference> , les packages ne sont pas stockés localement dans un dossier packages , ils sont stockés globalement.When your project uses <PackageReference>, packages aren't stored locally in a Packages folder, they're stored globally. Ouvrez le fichier projet et supprimez tous les <Analyzer> éléments référencés dans le dossier packages .Open the project file and remove any <Analyzer> elements that referred to the Packages folder. Ces analyseurs sont automatiquement inclus avec les références de package NuGet.These analyzers are automatically included with the NuGet package references.

Sécurité d'accès du codeCode Access Security

La sécurité d’accès du code (CAS) n’est pas prise en charge par .NET Core ou WPF pour .NET Core.Code Access Security (CAS) is not supported by .NET Core or WPF for .NET Core. Toutes les fonctionnalités liées à l’autorité de certification sont traitées en supposant un niveau de confiance totale.All CAS-related functionality is treated under the assumption of full-trust. WPF pour .NET Core supprime le code lié au CAS.WPF for .NET Core removes CAS-related code. La surface de l’API publique de ces types existe toujours pour garantir que les appels à ces types fonctionnent correctement.The public API surface of these types still exists to ensure that calls into these types succeed.

Les types liés à l’autorité de certification publiquement définis ont été déplacés hors des assemblys WPF et dans les assemblys de la bibliothèque .NET de base.Publicly defined CAS-related types were moved out of the WPF assemblies and into the Core .NET library assemblies. Le transfert de type des assemblys WPF est défini sur le nouvel emplacement des types déplacés.The WPF assemblies have type-forwarding set to the new location of the moved types.

Assembly sourceSource assembly Assembly cibleTarget assembly TypeType
WindowsBase.dllWindowsBase.dll System.Security.Permissions.dllSystem.Security.Permissions.dll MediaPermission
MediaPermissionAttribute
MediaPermissionAudio
MediaPermissionImage
MediaPermissionVideo
WebBrowserPermission
WebBrowserPermissionAttribute
WebBrowserPermissionLevel
System.Xaml.dllSystem.Xaml.dll System.Security.Permissions.dllSystem.Security.Permissions.dll XamlLoadPermission
System.Xaml.dllSystem.Xaml.dll System.Windows.Extension.dllSystem.Windows.Extension.dll XamlAccessLevel

Notes

Afin de réduire le frottement sur le Portage, les fonctionnalités de stockage et de récupération des informations relatives aux propriétés suivantes ont été conservées dans le XamlAccessLevel type.In order to minimize porting friction, the functionality for storing and retrieving information related to the following properties was retained in the XamlAccessLevel type.

  • PrivateAccessToTypeName
  • AssemblyNameString

Étapes suivantesNext steps