WPFアプリの.NET Core 3.0でSystem.Windows.Formsを参照する方法


12

WPFデスクトップアプリを.NET FramworkからCore 3.0に移行しています。System.Windows.Forms.FolderBrowserDialog()を使用していて、この参照をCoreプロジェクトに追加する方法に行き詰まっています。"System.Windows.Forms" NuGetパッケージはありませんか?コアでFolderBrowserDialogを表示する別の方法はありますか?

更新

デフォルトのテンプレートを使用してコアプロジェクトを作成し、貼り付けた.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だけです。
yaugenka

どうもありがとう!この問題の解決策を探していました。それは魅力のように機能します!
ラティッシュ

1

既に存在するようです:https : //docs.microsoft.com/en-us/dotnet/api/system.windows.forms.folderbrowserdialog?view=netcore-3.0

その他の移植の問題については、アプリを.NET Coreに移植するのに役立つWindows互換機能パックを使用することをお勧めします。

WPFとこの問題については、しばらく前からあったため、さらに詳しい情報があるかもしれません。これは、フォルダーの選択ダイアログWPFに役立ち、.NET Core用に更新されました。

アップグレードで頑張ってください!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.