Как ссылаться на System.Windows.Forms в .NET Core 3.0 для приложений WPF?


12

Я перевожу свое настольное приложение WPF из .NET Framwork в Core 3.0. Я использовал System.Windows.Forms.FolderBrowserDialog () и теперь застрял на том, как добавить эту ссылку в основной проект. Пакет NuGet "System.Windows.Forms" недоступен, не так ли? Есть ли альтернативный способ отображения FolderBrowserDialog в ядре?

Обновить

Я создал проект Core, используя шаблон по умолчанию, а затем скопировал в него вставленные файлы .cs и .xaml. Файл .csproj выглядит следующим образом:

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

Документация говорит, что класс присутствует: docs.microsoft.com/pl-pl/dotnet/api/… - пожалуйста, вставьте файл csproj - возможно, TargetFramework неверен.
— Хостел

Пожалуйста, проверьте обновленный вопрос. Я тоже видел страницу, но компилятор выдает ошибку The type or namespace name 'Forms' does not exist in the namespace 'System.Windows'и не предлагает рекомендаций по импорту.
— яугенка

Ответы:


17

Вам необходимо добавить в csproj дополнительный переключатель:

<UseWindowsForms>true</UseWindowsForms>

Добавьте его ниже UseWpf . Затем попробуйте восстановить. После этого вы сможете использовать пространство имен Forms.


Оно работает! Спасибо. Влияет ли присутствие обоих коммутаторов на производительность? Мне нужен только FolderBrowserDialog из форм.
— яугенка

Большое спасибо! Искал решение этой проблемы. Работает как часы!
— Ратиш

1

Похоже, он уже существует: https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.folderbrowserdialog?view=netcore-3.0

Для других проблем портирования вы можете использовать пакет совместимости Windows, который используется для портирования приложений на .NET Core.

Там также может быть немного больше информации, связанной с WPF и этой проблемой, так как она была вокруг некоторое время. Это может быть полезно для выбора папки диалогового окна WPF и обновлено для .NET Core.

Удачи в обновлении!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.