¿Cómo hacer referencia a System.Windows.Forms en .NET Core 3.0 para aplicaciones WPF?

12

Estoy migrando mi aplicación de escritorio WPF de .NET Framwork a Core 3.0. Estaba usando System.Windows.Forms.FolderBrowserDialog () y ahora estoy atascado en cómo agregar esta referencia al proyecto Core. No hay un paquete NuGet "System.Windows.Forms" disponible, ¿verdad? ¿Hay alguna forma alternativa de mostrar el FolderBrowserDialog en el Core?

Actualizar

Creé el proyecto Core usando la plantilla predeterminada y luego copié archivos .cs y .xaml pegados en él. El archivo .csproj se ve así:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UseWPF>true</UseWPF>
  </PropertyGroup>
yaugenka
fuente
La documentación dice que la clase está presente: docs.microsoft.com/pl-pl/dotnet/api/… - pegue el archivo csproj - tal vez TargetFramework está mal.
Albergue
Por favor revise la pregunta actualizada. También vi la página, pero el compilador da el error The type or namespace name 'Forms' does not exist in the namespace 'System.Windows'y no hay sugerencias de importación de referencia.
yaugenka

Respuestas:

17

Debe agregar al modificador adicional csproj:

<UseWindowsForms>true</UseWindowsForms>

Agréguelo debajo de UseWpf . Entonces intenta reconstruir. Después de esto, debería poder usar el espacio de nombres de formularios.

Hostal
fuente
¡Funciona! Gracias. ¿La presencia de ambos interruptores influye en el rendimiento de alguna manera? Es solo el FolderBrowserDialog lo que necesito de los formularios.
Yaugenka
¡Muchas gracias! Estaba buscando una solución a este problema. ¡Funciona a las mil maravillas!
Ratish
1

Parece que ya existe: https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.folderbrowserdialog?view=netcore-3.0

Para otros problemas de portabilidad, es posible que desee usar el Paquete de compatibilidad de Windows que se usa para ayudar a portar aplicaciones a .NET Core

También puede haber más información por ahí relacionada con WPF y este problema, ya que ha estado presente por un tiempo. Esto puede ser útil Seleccione el diálogo de carpeta WPF y se actualice para .NET Core.

¡Buena suerte con tu actualización!

n234
fuente