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>

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.


Ç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!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.