เป็นไปได้ไหมที่จะสร้างแอปพลิเคชัน GUI บนเดสก์ท็อปใน. NET Core


114

ฉันพัฒนาโปรแกรม Windows Forms มาสองสามปีแล้ว ตอนนี้ฉันกำลังมองหา. NET Core (รวมถึง ASP.NET Core MVC) ฉันกำลังค้นหาเทคโนโลยีเดสก์ท็อป GUI ใหม่ ใน Visual Studio 2015 update 3 ฉันไม่เห็นตัวเลือกใด ๆ ในการสร้างแอป GUI ใน. NET Core

ฉันขาดอะไรไป?


คุณควรเปลี่ยนมุมมองแพลตฟอร์มใหม่นี้ ทุกเฟรมเวิร์กที่มีอยู่ WPF / WinForms / UWP / GTK # / Xamarin.Mac / iOS / Android สามารถใช้โค้ดที่คุณเขียนบน. NET Core ได้ ซึ่งทำให้เกิดการพัฒนาข้ามแพลตฟอร์มไม่ใช่ในแบบที่คุณคิด
Lex Li

ดังนั้นคุณกำลังบอกว่าฉันสามารถสร้าง GUI ใน -for example- winforms และโค้ดส่วนหลังใน. net core
EKanadily

ไม่. แพคเกจที่สร้างบน. NET Core สามารถเพิ่มเป็นข้อมูลอ้างอิงได้โดยตรง
Lex Li

1
อิเล็กตรอนเป็นทางไป ใช้ asp.net หลัง api ถ้าคุณเก็บแสงลอจิก ui ไว้คุณควรจะสามารถเก็บส่วนที่สำคัญที่สุดของแอปพลิเคชันไว้บน. net ได้
user7558114

1
เพื่อเป็นเคล็ดลับสำหรับมืออาชีพฉันจะอัปเกรดเป็น Visual Studio 2017 (ถ้าเป็นไปได้) หรือใช้เครื่องมืออื่น ๆ ที่มีให้ (CLI และ / หรือ VS Code / Rider) เนื่องจาก VS 2015 ไม่มีสิทธิ์เข้าถึงเครื่องมือ. NET Core 2.0 ซึ่งจะ ขัดขวางการพัฒนาของคุณต่อไป แม้ว่าสิ่งที่คุณทำคือการทดลองก็ตาม
Jamie Taylor

คำตอบ:


75

คุณไม่ได้ขาดอะไรเลย Microsoft ไม่ได้ส่งวิธีที่สมเหตุสมผลในการสร้างแอปพลิเคชัน GUI โดยตรงโดยใช้. NET Core จนกระทั่ง. NET Core 3 แม้ว่าUWP (Universal Windows Platform) จะถูกสร้างขึ้นบางส่วนบน. NET Core

.NET Core 3.0 มีการรองรับ Windows Forms และ WPF แม้ว่าจะเป็น Windows เท่านั้น

.NET 6 จะรวม. NET MAUI ซึ่งจะรองรับแอปพลิเคชันเดสก์ท็อป Windows และ macOS และแอปพลิเคชันมือถือพร้อมกับแอปพลิเคชันบนเดสก์ท็อป Linux ที่ชุมชนรองรับ (ไม่ใช่ MS) .NET 5 จะรวม. NET MAUI เวอร์ชันตัวอย่าง

สำหรับตัวเลือกข้ามแพลตฟอร์มของบุคคลที่สามโปรดดูคำตอบอื่น ๆ


48
โอ้โห! แล้วอะไรคือจุดของกรอบงานข้ามแพลตฟอร์มที่ไม่มี GUI?
EKanadily

21
@EssamGndelee จุดหลักคือแอปพลิเคชัน ASP.NET Core จุดรองคือแอปพลิเคชันคอนโซล
svick

3
@ChristopherPainter รองรับคลาวด์คอมพิวติ้งได้ดีขึ้นและดึงดูดนักพัฒนาจากแพลตฟอร์มเช่น Node.js เป็นสาเหตุบางประการที่มี Net Core อยู่ใช่ แต่นั่นไม่ได้หมายความว่า Microsoft สนใจเฉพาะเรื่องเหล่านี้เท่านั้น
svick

1
@CYoung ฉันคิดว่าจุดยืนของ Microsoft คือคุณควรใช้ UWP เพื่อสิ่งนั้น
svick

1
@svick ซึ่งจะกำจัดการเขียนโปรแกรมข้ามแพลตฟอร์มโดยสิ้นเชิงซึ่งเป็น. NET Core ที่ควรแก้ปัญหา UWP ดีพอสำหรับตระกูล MS เท่านั้น: /
walther

52

ขณะนี้AvaloniaUIรองรับการทำงานบน. NET Core บน Windows, OS X และ Linux แล้ว XAML การผูกและเทมเพลตการควบคุมรวมอยู่ด้วย

เช่นในการพัฒนาบน macOS ด้วย Rider:

  1. ทำตามคำแนะนำเพื่อติดตั้งเทมเพลตใหม่ของ Avalonia dotnet
  2. เปิด JetBrains Rider และจากหน้าจอต้อนรับ
  3. เลือกโซลูชันใหม่ → (ใกล้ด้านบนสุดของรายการเทมเพลต ) → เทมเพลตเพิ่มเติม →เทมเพลตการติดตั้งปุ่ม ... * →เรียกดูไดเร็กทอรีที่คุณโคลนเทมเพลตในขั้นตอนที่ 1
  4. คลิกReloadปุ่ม
  5. นี่แน่ะ! เทมเพลต Avalonia ปรากฏในNew Solutionรายการเทมเพลตแล้ว!
  6. เลือกเทมเพลต Avalonia
  7. สร้างและเรียกใช้ ดู GUI ที่เปิดอยู่ต่อหน้าต่อตาคุณ

ขั้นตอน GUI ในการติดตั้งเทมเพลตใหม่ดอทเน็ตลงใน JetBrains Rider


นอกจากนี้ทุกคนที่สนใจโปรดลงคะแนนให้ Jetbrains รวมการสนับสนุน Avalonia ใน Rider: youtrack.jetbrains.com/issue/RIDER-39247
xendi

40

คุณสามารถใช้Electronและต่อเข้ากับEdge.js resp อิเล็กตรอนที่ทันสมัย Edge.js อนุญาตให้ Electron (Node.js) เรียกไฟล์. NET DLL และในทางกลับกัน

วิธีนี้คุณสามารถเขียน GUI ด้วย HTML, CSS และ JavaScript และแบ็กเอนด์ด้วย. NET Core Electron เองก็ข้ามแพลตฟอร์มและขึ้นอยู่กับเบราว์เซอร์ Chromium


7
แต่ทำไมอิเล็กตรอน? คุณสามารถเปิดเว็บแอปพลิเคชันบนพอร์ต X จากนั้นไปที่เบราว์เซอร์ได้ รวมทุกสิ่งที่ Electron สามารถทำได้และอื่น ๆ เนื่องจากเป็นเบราว์เซอร์เวอร์ชันล่าสุดเสมอซึ่งแตกต่างจาก Electron หากคุณต้องการเบราว์เซอร์เวอร์ชันเฉพาะให้รวม Google-Chrome ไว้ในการแจกจ่ายของคุณ
Stefan Steiger

2
@StefanSteiger ฉันคิดว่าการใช้อิเล็กตรอนและการเรียก API โดยตรงผ่านแอสเซมบลีจะช่วยเติมเต็มช่องว่างที่ผู้ใช้จะไม่เห็นแอปเป็นเว็บแอป และนักพัฒนาบางคนไม่ต้องการเพิ่มชั้นการสื่อสารโดยใช้ HTTP
Brian Ng

Electron.Net ดูเหมือนจะค่อนข้างง่ายในตอนนี้cross-platform-blog.com/electron.net/…
J. Allen

Electron.NET ดูมีแนวโน้ม แต่ฉันเบื่อที่จะใช้มันในการผลิตเนื่องจากบังคับให้คุณเปิดเว็บเซิร์ฟเวอร์ที่ไม่ปลอดภัยบนเครื่องผลิตของคุณ จากนั้นอีกครั้งตราบเท่าที่ส่วนท้าย ASP.NET Core ของแอพนั้นอยู่ด้านหลังพร็อกซีเซิร์ฟเวอร์ย้อนกลับที่กำหนดค่าไว้อย่างเหมาะสมเช่น IIS หรือ nginx (หรือคล้ายกัน) คุณจะปลอดภัยกว่า
Jamie Taylor

นรกอาจเป็นเพียงแอปที่เป็น mvc / webapi โฮสต์ในเครื่องบนพอร์ตสุ่มและใช้อินเทอร์เฟซอิเล็กตรอนที่เรียกใช้ API ท้องถิ่น
Wjdavis5

31

ตอนนี้มันเป็นไปได้ที่จะใช้ Qt, QtQuick และ QML กับ .NET หลักโดยใช้Qml.Net

มีประสิทธิภาพสูง (ไม่ใช่ " P / Invoke chatty") มีคุณลักษณะครบถ้วนและใช้งานได้กับ Linux, OS X และ Windows

ลองดูบล็อกโพสต์ของฉันเพื่อดูว่ามันเปรียบเทียบกับตัวเลือกอื่น ๆ ในปัจจุบันอย่างไร

PS: ฉันเป็นคนเขียน


มันดูมีแนวโน้มมากฉันจะดูมัน
Daniel

21

ทางเลือกหนึ่งคือการใช้ Electron กับ JavaScript, HTML และ CSS สำหรับ UI และสร้างแอปพลิเคชันคอนโซล. NET Core ที่จะโฮสต์เว็บ API สำหรับตรรกะส่วนหลังด้วยตนเอง Electron จะเริ่มแอปพลิเคชันคอนโซลในพื้นหลังซึ่งจะแสดงบริการบนlocalhost: xxxxxxxx

ด้วยวิธีนี้คุณสามารถใช้ตรรกะส่วนหลังทั้งหมดโดยใช้. NET เพื่อให้สามารถเข้าถึงได้ผ่านการร้องขอ HTTP จาก JavaScript

ดูที่โพสต์นี้อธิบายวิธีสร้างแอปพลิเคชันเดสก์ท็อปข้ามแพลตฟอร์มด้วย Electron และ. NET Coreและตรวจสอบโค้ดบนGitHub GitHub


20

สำหรับการสร้าง UI คอนโซลตามคุณสามารถใช้gui.cs เป็นโอเพ่นซอร์ส (จากMiguel de Icazaผู้สร้างXamarin ) และทำงานบน. NET Core บน Windows, Linux และ macOS

มีส่วนประกอบดังต่อไปนี้:

  • ปุ่มต่างๆ
  • ป้ายกำกับ
  • การป้อนข้อความ
  • มุมมองข้อความ
  • ฟิลด์แก้ไขเวลา
  • ปุ่มตัวเลือก
  • ช่องทำเครื่องหมาย
  • กล่องโต้ตอบ
    • กล่องข้อความ
  • Windows
  • เมนู
  • ListViews
  • เฟรม
  • ProgressBars
  • มุมมองเลื่อนและแถบเลื่อน
  • โปรแกรมดู / ตัวแก้ไขเลขฐานสิบหก (HexView)

ภาพหน้าจอตัวอย่าง

ภาพหน้าจอผลลัพธ์ตัวอย่าง gui.cs


6

.NET Core 3 จะรองรับการสร้างแอปพลิเคชันเดสก์ท็อป Windows ฉันดูการสาธิตเทคโนโลยีเมื่อวานนี้ระหว่างการประชุม. NET

นี่เป็นบล็อกโพสต์เดียวที่ฉันสามารถหาได้ แต่มันแสดงให้เห็นถึงประเด็น: .NET Core 3 และการสนับสนุนสำหรับแอปพลิเคชันเดสก์ท็อป Windows


4

ใช่มันเป็นไปได้

.NET Core ไม่มีส่วนประกอบใด ๆ สำหรับแอปพลิเคชัน GUI ดั้งเดิมนอกกรอบ อย่างไรก็ตามมีแพ็คเกจ NuGet ที่เรียกว่าElectron.NETตามคำตอบของ Gregor Biswanger

Electronเป็นเฟรมเวิร์กที่ช่วยให้คุณสร้างแอปพลิเคชัน GUI ดั้งเดิมที่ด้านบนของ Node.js Electron.NET เป็นแพ็คเกจ NuGet ที่ให้คุณใช้ Electron และ Node.js จากภายในรหัส. NET Core ของคุณ

ข่าวดีก็คือคุณไม่จำเป็นต้องเรียนรู้ JavaScript, Electron หรือ Node.js เพื่อให้สามารถใช้แพ็คเกจ NuGet ได้ ไฟล์ JS ทำงานภายในแอปพลิเคชันของคุณ แต่จะถูกสร้างขึ้นโดยอัตโนมัติโดยกระบวนการสร้าง

สิ่งที่คุณทำคือสร้างแอป ASP.NET Core MVC ที่ค่อนข้างได้มาตรฐาน ข้อแตกต่างเพียงอย่างเดียวคือแทนที่จะทำงานในเบราว์เซอร์ แต่จะทำงานเป็นแอปที่มีหน้าต่างดั้งเดิม นอกเหนือจากโค้ดเพียงไม่กี่บรรทัดเฉพาะสำหรับแพ็คเกจ Electron.NET แล้วคุณไม่จำเป็นต้องเรียนรู้อะไรจาก ASP.NET Core MVC

หน้านี้ให้คำแนะนำเกี่ยวกับวิธีการใช้งาน นอกจากนี้ยังมีลิงก์บางส่วนไปยังที่เก็บโค้ดตัวอย่าง


4

tl; dr - ฉันไม่แน่ใจว่าจะเป็นไปได้ที่นักพัฒนา. NET Core จะจัดหาเฟรมเวิร์ก GUI ข้ามแพลตฟอร์ม

ฉันรู้สึกว่าคาดหวังว่าเฟรมเวิร์ก GUI ข้ามแพลตฟอร์มจะรวมอยู่ในเครื่องมืออย่างเป็นทางการ (โดยเฉพาะเวอร์ชันเก่าของเครื่องมือ - คุณพูดถึงว่าคุณกำลังใช้ Visual Studio 2015 update 3) สำหรับ. NET Core เวอร์ชันแรกนั้นเล็กน้อย ก่อนวัยอันควร.

เฟรมเวิร์ก GUI นั้นค่อนข้างหนักและขึ้นอยู่กับฮาร์ดแวร์ที่มีอยู่แล้วบนเครื่องโฮสต์ ใน Windows โดยทั่วไปจะมีตัวจัดการหน้าต่างเดียว (WM) และสภาพแวดล้อมเดสก์ท็อป (DE) ที่ใช้โดยผู้ใช้ส่วนใหญ่ แต่ในการกระจาย Linux ที่แตกต่างกันจำนวนมากซึ่งได้รับการสนับสนุนมี WM และ DE ที่เป็นไปได้จำนวนเท่าใดก็ได้ที่ผู้ใช้ส่วนใหญ่จะ อย่างใดอย่างหนึ่งจะใช้ X-Server หรือWaylandร่วมกับKDE , GNOMEหรือXfce แต่ไม่มีการติดตั้ง Linux ที่เหมือนกัน

ความจริงที่ว่าชุมชนโอเพนซอร์สไม่สามารถจัดการกับการตั้งค่า "มาตรฐาน" สำหรับ VM และ DE ได้หมายความว่านักพัฒนา. NET Core จะสร้างกรอบงาน GUI ได้ยากซึ่งจะทำงานได้กับทุกแพลตฟอร์มและการรวมกันของ DEs และ WMs

ผู้คนจำนวนมากที่นี่มีคำแนะนำที่ดี (จากการใช้ ASP.NET Core เพื่อสร้างเว็บแอปพลิเคชันและใช้เบราว์เซอร์เพื่อแสดงรายการเฟรมเวิร์กข้ามแพลตฟอร์มจำนวนมาก) หากคุณดูเฟรมเวิร์ก GUI ข้ามแพลตฟอร์มที่กล่าวถึงในรายการคุณจะเห็นว่ามันหนักแค่ไหน

อย่างไรก็ตามมีแสงสว่างที่ปลายอุโมงค์เมื่อMiguel de Icaza แสดงให้เห็นว่า Xamarin ทำงานอย่างไร้เดียงสาบน Linux และ macOS ที่. NET Confในปีนี้ (2017 หากคุณกำลังอ่านสิ่งนี้ในอนาคต) ดังนั้นจึงควรลอง เมื่อพร้อม

(แต่คุณจะต้องอัปเกรดจาก Visual Studio 2015 เป็น Visual Studio 2017 เพื่อเข้าถึงฟีเจอร์. NET Core 2.0)


ไม่มีเหตุผลสำหรับความหลากหลายของ linux 1. Java ทำงานได้อย่างราบรื่น 2. Mono รัน WinForms noramlly (คุณน่าเกลียด) ใน linux คุณสามารถใช้ GTK บน QT ตาม distro และในทางกลับกัน จะเป็นการดีที่จะมีการผูก QT สำหรับ. net core
Bogdan Mart

ฉันเห็นด้วยกับทุกสิ่งที่คุณพูด อย่างไรก็ตามฉันรู้สึกว่าแนวทางของ Microsoft คือการจัดหา IaaS (โครงสร้างพื้นฐานเป็นบริการ), SaaS (Software as a Service) และ PaaS (Platform as a Service) ผ่านทางแพลตฟอร์ม Azure ในขณะนี้ มันจะทำให้รู้สึกว่าฝ่ายแรกโอเพ่นซอร์สและเฟรมเวิร์กข้ามแพลตฟอร์มจะชี้ให้นักพัฒนาไปสู่ทิศทางนั้นเป็นลำดับความสำคัญ งานที่ Azure และ บริษัท อื่น ๆ เช่น RHEL และ Google กำลังทำเพื่อรองรับทั้ง ASP NET Core และ. NET Core นั้นเป็นงานที่มีตำนานและเป็นที่ยอมรับว่าลำดับความสำคัญของ. NET Core นั้นสะท้อนให้เห็น
Jamie Taylor

4

ฉันกำลังทำโครงการที่อาจช่วยได้: https://github.com/gkmo/CarloSharp

แอปพลิเคชันต่อไปนี้เขียนด้วย. NET ด้วย UI ใน HTML, JavaScript และ CSS (เชิงมุม)

ใส่คำอธิบายภาพที่นี่


2
ไม่ต้องใช้ HTML
Richard Lalancette

1
@Richard Lalancette: ทำไม? คุณสามารถอธิบายได้หรือไม่? ไม่ได้เป็นVisual Studio รหัสตัวอย่างหนึ่งอยู่แล้ว?
Peter Mortensen

มันเป็นเพียงเทคโนโลยีที่น่ากลัวสำหรับแอปเดสก์ท็อป เห็นได้ชัดว่าขึ้นอยู่กับระดับประสิทธิภาพและคุณภาพที่คุณต้องการ
Richard Lalancette

3

คุณสามารถพัฒนาเว็บแอปพลิเคชันด้วย. NET Core และ MVC และห่อหุ้มไว้ในแอป JavaScript สากลของ Windows: Progressive Web Apps บน Windows

ยังคงเป็นเว็บแอปพลิเคชัน แต่เป็นวิธีที่มีน้ำหนักเบามากในการเปลี่ยนเว็บแอปพลิเคชันให้เป็นแอปเดสก์ท็อปโดยไม่ต้องเรียนรู้กรอบงานใหม่หรือ / และพัฒนา UI ใหม่และใช้งานได้ดี

ความไม่สะดวกต่างจากElectronหรือReactXPเช่นผลที่ได้คือแอปพลิเคชัน Windows สากลไม่ใช่แอปพลิเคชันเดสก์ท็อปข้ามแพลตฟอร์ม


2

สำหรับกรณีพิเศษของแอปพลิเคชัน Windows Forms ที่มีอยู่ :

มีวิธี - แม้ว่าฉันจะไม่รู้ว่ามันทำงานได้ดีแค่ไหน
มันจะไปเช่นนี้
ใช้ Windows แบบฟอร์มการดำเนินงานจากโมโน
พอร์ตไปยัง. NET Core หรือ NetStandard

คอมไพล์แอปพลิเคชัน Windows Forms ของคุณกับ System.Windows.Forms ใหม่
แก้ไขสิ่งที่อาจเสียหายโดย. NET Core
อธิษฐานให้โมโนประกอบชิ้นส่วนที่คุณต้องการอย่างไร้ที่ติ
(หากไม่เป็นเช่นนั้นคุณสามารถหยุดสวดมนต์ได้ตลอดเวลาและส่งคำขอดึงโครงการ Mono พร้อมกับแก้ไข / แก้ไข / คุณลักษณะของคุณ)

นี่คือที่เก็บ CoreFX Windows Forms ของฉัน:
https://github.com/ststeiger/System.CoreFX.Forms


2

ใช่เป็นไปได้ที่จะพัฒนาแอปพลิเคชันข้ามแพลตฟอร์มเดสก์ท็อป (GUI) สำหรับ Windows, Linux และ macOS โดยใช้ Visual Studio Code, .NET Core, C #, GTK 3 , gtksharp และ Glade ในฐานะผู้ออกแบบ GUI

นี่คือวิธีการ


0

หากคุณใช้. NET Core 3.0 ขึ้นไปให้ทำตามขั้นตอนต่อไปนี้และคุณก็พร้อมใช้งาน: (ฉันจะใช้. NET Core CLIแต่คุณสามารถใช้ Visual Studio ได้ด้วย):

  1. md MyWinFormsApp ขั้นตอนที่ไม่บังคับ
  2. cd MyWinFormsApp ขั้นตอนที่ไม่บังคับ
  3. dotnet new sln -n MyWinFormsApp ขั้นตอนที่ไม่บังคับ แต่เป็นความคิดที่ดี
  4. dotnet new winforms -n MyWinFormsApp ฉันขอโทษนี่ไม่ใช่ทางเลือก
  5. dotnet sln add MyWinFormsApp ทำสิ่งนี้ถ้าคุณทำขั้นตอนที่ # 3

โอเคคุณหยุดอ่านคำตอบของฉันและเริ่มเพิ่มโค้ดในMyWinFormsAppโปรเจ็กต์ได้ แต่ถ้าคุณต้องการที่จะทำงานกับ Form Designerโปรดอ่านต่อไป

  1. เปิดMyWinFormsApp.csprojไฟล์และเปลี่ยน<TargetFramework>netcoreapp3.1<TargetFramework>เป็น<TargetFrameworks>net472;netcoreapp3.1</TargetFrameworks>(หากคุณใช้netcoreapp3.0ไม่ต้องกังวลเปลี่ยนเป็น<TargetFrameworks>net472;netcoreapp3.0</TargetFrameworks>)
  2. จากนั้นเพิ่มสิ่งต่อไปนี้ ItemGroup
  <ItemGroup Condition="'$(TargetFramework)' == 'net472'">
    <Compile Update="Form1.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="Form1.Designer.cs">
      <DependentUpon>Form1.cs</DependentUpon>
    </Compile>
  </ItemGroup>

หลังจากทำตามขั้นตอนเหล่านี้แล้วนี่คือสิ่งที่คุณควรจะได้รับ:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFrameworks>net472;netcoreapp3.1</TargetFrameworks>
    <UseWindowsForms>true</UseWindowsForms>
  </PropertyGroup>

  <ItemGroup Condition="'$(TargetFramework)' == 'net472'">
    <Compile Update="Form1.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="Form1.Designer.cs">
      <DependentUpon>Form1.cs</DependentUpon>
    </Compile>
  </ItemGroup>

</Project>
  1. เปิดไฟล์Program.csและเพิ่มตัวประมวลผลล่วงหน้า - ifต่อไปนี้
#if NETCOREAPP3_1
    Application.SetHighDpiMode(HighDpiMode.SystemAware);
#endif

ตอนนี้คุณสามารถเปิดMyWinFormsAppโครงการโดยใช้ Visual Studio 2019 ( ฉันคิดว่าคุณสามารถใช้ Visual Studio 2017 ได้เช่นกัน แต่ฉันไม่แน่ใจ ) แล้วดับเบิลคลิกForm1.csและคุณจะเห็นสิ่งนี้:

ใส่คำอธิบายภาพที่นี่

โอเคเปิด Toolbox ( Ctrl+ W,X ) และเริ่มเพิ่มการควบคุมลงในแอปพลิเคชันของคุณและทำให้มันสวย

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับการออกแบบที่ออกแบบฟอร์ม Windows .NET หลัก


0

Windows Forms (และ Visual Designer) พร้อมใช้งานสำหรับ. NET Core (เป็นตัวอย่าง) ตั้งแต่ Visual Studio 2019 16.6 ค่อนข้างดีแม้ว่าบางครั้งฉันต้องเปิด Visual Studio 2019 16.7 Preview เพื่อกำจัดจุดบกพร่องที่น่ารำคาญ

ดูโพสต์บล็อกนี้: Windows Forms Designer for .NET Core Released

นอกจากนี้ Windows Forms ยังเป็นโอเพนซอร์ส: https://github.com/dotnet/winforms


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