Як посилатися на 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'і не пропонує посилань на імпорт.
— yaugenka

Відповіді:


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.