Comment référencer System.Windows.Forms dans .NET Core 3.0 pour les applications WPF?

12

Je migre mon application de bureau WPF de .NET Framwork vers Core 3.0. J'utilisais System.Windows.Forms.FolderBrowserDialog () et je suis maintenant bloqué sur la façon d'ajouter cette référence au projet Core. Aucun package NuGet "System.Windows.Forms" n'est disponible, n'est-ce pas? Existe-t-il un autre moyen d'afficher le FolderBrowserDialog dans le Core?

Mise à jour

J'ai créé le projet Core à l'aide du modèle par défaut, puis y ai copié les fichiers .cs et .xaml collés. Le fichier .csproj ressemble à ceci:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UseWPF>true</UseWPF>
  </PropertyGroup>
yaugenka
la source
La documentation indique que la classe est présente: docs.microsoft.com/pl-pl/dotnet/api/… - veuillez coller le fichier csproj - peut-être que TargetFramework est incorrect.
auberge de jeunesse
Veuillez vérifier la question mise à jour. J'ai également vu la page, mais le compilateur donne l'erreur The type or namespace name 'Forms' does not exist in the namespace 'System.Windows'et aucune suggestion d'importation de référence.
yaugenka

Réponses:

17

Vous devez ajouter à csproj un commutateur supplémentaire:

<UseWindowsForms>true</UseWindowsForms>

Ajoutez-le sous UseWpf . Essayez ensuite de reconstruire. Après cela, vous devriez pouvoir utiliser l'espace de noms Forms.

Hôtel
la source
Ça marche! Je vous remercie. La présence des deux commutateurs influence-t-elle les performances de toute façon? Ce n'est que le FolderBrowserDialog dont j'ai besoin dans les formulaires.
yaugenka
Merci beaucoup! Je cherchais une solution à ce problème. Il fonctionne comme un charme!
Ratish
1

Il semble qu'il existe déjà: https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.folderbrowserdialog?view=netcore-3.0

Pour d'autres problèmes de portage, vous souhaiterez peut-être utiliser le pack de compatibilité Windows qui est utilisé pour aider à porter des applications vers .NET Core

Il pourrait également y avoir plus d'informations sur WPF et ce problème, car cela existe depuis un certain temps. Cela peut être utile. Sélectionnez la boîte de dialogue de dossier WPF et mis à jour pour .NET Core.

Bonne chance avec votre mise à jour!

n234
la source