Come fare riferimento a System.Windows.Forms in .NET Core 3.0 per le app WPF?


12

Sto migrando la mia app desktop WPF da .NET Framwork a Core 3.0. Stavo usando System.Windows.Forms.FolderBrowserDialog () e ora sono bloccato su come aggiungere questo riferimento al progetto Core. Non è disponibile un pacchetto NuGet "System.Windows.Forms", vero? Esiste un modo alternativo per visualizzare il FolderBrowserDialog nel Core?

Aggiornare

Ho creato il progetto Core utilizzando il modello predefinito e quindi copiato i file .cs e .xaml incollati. Il file .csproj è simile al seguente:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UseWPF>true</UseWPF>
  </PropertyGroup>

La documentazione afferma che la classe è presente: docs.microsoft.com/pl-pl/dotnet/api/… - incollare il file csproj - forse TargetFramework è sbagliato.
Ostello

Si prega di controllare la domanda aggiornata. Ho visto anche la pagina, ma il compilatore fornisce l'errore The type or namespace name 'Forms' does not exist in the namespace 'System.Windows'e nessun suggerimento per l'importazione di riferimento.
yaugenka,

Risposte:


17

Devi aggiungere allo switch aggiuntivo csproj:

<UseWindowsForms>true</UseWindowsForms>

Aggiungilo sotto UseWpf . Quindi prova a ricostruire. Dopo questo dovresti essere in grado di usare lo spazio dei nomi di Forms.


Funziona! Grazie. La presunzione di entrambi gli interruttori influenza comunque le prestazioni? È solo il FolderBrowserDialog di cui ho bisogno dai moduli.
yaugenka,

Molte grazie! Stava cercando una soluzione a questo problema. Esso funziona magicamente!
Ratish

1

Sembra che esista già: https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.folderbrowserdialog?view=netcore-3.0

Per altri problemi di porting, potresti voler utilizzare Windows Compatibility Pack, che viene utilizzato per aiutare le app di port su .NET Core

Potrebbero esserci anche altre informazioni relative a WPF e questo problema, dato che esiste da un po 'di tempo. Questo potrebbe essere utile Selezionare la finestra di dialogo Seleziona cartella WPF e aggiornata per .NET Core.

Buona fortuna con il tuo aggiornamento!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.