วิธีการอ้างอิง System.Windows.Forms ใน. NET Core 3.0 สำหรับแอพ WPF


12

ฉันกำลังโยกย้ายแอพเดสก์ท็อป WPF จาก. NET Framwork ไปยัง Core 3.0 ฉันใช้ System.Windows.Forms.FolderBrowserDialog () และตอนนี้ฉันติดอยู่กับวิธีการเพิ่มการอ้างอิงนี้ไปยังโครงการหลัก ไม่มี "System.Windows.Forms" แพ็คเกจ NuGet ที่มีอยู่ใช่ไหม มีวิธีอื่นในการแสดง 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 namespace


มันได้ผล! ขอบคุณ. ความสำคัญของสวิตช์ทั้งสองมีผลต่อประสิทธิภาพหรือไม่? เป็นเพียง FolderBrowserDialog ที่ฉันต้องการจากแบบฟอร์ม
yaugenka

ขอบคุณมาก! กำลังมองหาวิธีการแก้ไขปัญหานี้ มันใช้งานได้เหมือนมีเสน่ห์!
Ratish

1

ดูเหมือนว่ามีอยู่แล้ว: https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.folderbrowserdialog?view=netcore-3.0

สำหรับปัญหาการย้ายพอร์ตอื่น ๆ คุณอาจต้องการใช้ชุดความเข้ากันได้ของ Windowsซึ่งใช้เพื่อช่วยพอร์ตแอปไปยัง. NET Core

นอกจากนี้ยังอาจมีข้อมูลเพิ่มเติมเกี่ยวกับ WPF และปัญหานี้เนื่องจากมีมานานแล้ว นี่อาจเป็นประโยชน์เลือกไดอะล็อกโฟลเดอร์ WPFและอัพเดตสำหรับ. NET Core

ขอให้โชคดีกับการอัพเกรดของคุณ!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.