Wie verweise ich auf System.Windows.Forms in .NET Core 3.0 für WPF-Apps?


12

Ich migriere meine WPF-Desktop-App von .NET Framwork auf Core 3.0. Ich habe System.Windows.Forms.FolderBrowserDialog () verwendet und bin jetzt nicht sicher, wie ich diesen Verweis zum Core-Projekt hinzufügen soll. Es ist kein NuGet-Paket "System.Windows.Forms" verfügbar. Gibt es eine alternative Möglichkeit, den FolderBrowserDialog im Core anzuzeigen?

Aktualisieren

Ich habe das Core-Projekt mit der Standardvorlage erstellt und dann eingefügte CS- und XAML-Dateien darin kopiert. Die .csproj-Datei sieht folgendermaßen aus:

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

Die Dokumentation besagt, dass die Klasse vorhanden ist: docs.microsoft.com/pl-pl/dotnet/api/… - Bitte fügen Sie die csproj-Datei ein - möglicherweise ist TargetFramework falsch.
Hostel

Bitte überprüfen Sie die aktualisierte Frage. Ich habe die Seite auch gesehen, aber der Compiler gibt den Fehler The type or namespace name 'Forms' does not exist in the namespace 'System.Windows'und keine Referenzimportvorschläge aus.
Yaugenka

Antworten:


17

Sie müssen csproj zusätzlichen Schalter hinzufügen:

<UseWindowsForms>true</UseWindowsForms>

Fügen Sie es unter UseWpf hinzu . Versuchen Sie dann neu zu erstellen. Danach sollten Sie den Forms-Namespace verwenden können.


Es klappt! Vielen Dank. Beeinflusst die Anwesenheit beider Schalter die Leistung überhaupt? Es ist nur der FolderBrowserDialog, den ich aus den Formularen benötige.
Yaugenka

Vielen Dank! War auf der Suche nach einer Lösung für dieses Problem. Es wirkt wie ein Zauber!
Ratish

1

Es sieht so aus, als ob es bereits existiert: https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.folderbrowserdialog?view=netcore-3.0

Für andere Portierungsprobleme möchten Sie möglicherweise das Windows-Kompatibilitätspaket verwenden, mit dem Apps auf .NET Core portiert werden können

Möglicherweise gibt es auch weitere Informationen zu WPF und diesem Problem, da es das schon eine Weile gibt. Dies kann hilfreich sein. Ordnerdialog WPF auswählen und für .NET Core aktualisiert.

Viel Glück bei Ihrem Upgrade!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.