บทช่วยสอน WPF สำหรับผู้เริ่มต้น

⚡ สรุปอย่างชาญฉลาด

ดับบลิวพีเอฟ (Windows การเสนอ Foundation) คือ Microsoftกรอบการทำงานสำหรับการสร้างสิ่งที่มีคุณค่า Windows แอปพลิเคชันบนเดสก์ท็อป สำหรับผู้เริ่มต้นจะได้เรียนรู้วิธีการทำงานร่วมกันของ XAML, การผูกข้อมูล และกราฟิกที่เร่งความเร็วด้วยฮาร์ดแวร์ เพื่อสร้างส่วนติดต่อผู้ใช้ที่ปรับขนาดได้และสวยงามด้วยโค้ดที่น้อยลง

  • 🧭 Foundation: WPF คือเฟรมเวิร์ก UI ที่ใช้เวกเตอร์และ DirectX ภายในแพลตฟอร์ม .NET
  • 🎨 โค้ด XAML: ไวยากรณ์ XML แบบประกาศแยกการออกแบบส่วนติดต่อผู้ใช้จากตรรกะทางธุรกิจของ C#
  • 🧱 Archiเทคเจอร์: PresentationFramework, PresentationCore และ Milcore ทำงานร่วมกันบน DirectX เพื่อการแสดงผล
  • 🔗 การผูกข้อมูล: การผูกข้อมูลแบบในตัวจะเชื่อมต่อส่วนควบคุมกับแหล่งข้อมูล และเป็นหัวใจสำคัญของรูปแบบ MVVM
  • 🛠️ เริ่มต้นลงมือปฏิบัติจริง: เทมเพลตของ Visual Studio ช่วยให้คุณสร้างและเรียกใช้แอป WPF ตัวแรกได้ภายในเจ็ดขั้นตอน
  • 🚀 ความเกี่ยวข้องสมัยใหม่: WPF เป็นโอเพนซอร์สและมาพร้อมกับ .NET 10 ภายใต้การสนับสนุนระยะยาว

บทช่วยสอน WPF สำหรับผู้เริ่มต้น

WPF คืออะไร?

WPF เป็นกรอบสำหรับการก่อสร้าง Windows WPF (Wide Environment Framework) คือแอปพลิเคชันที่ช่วยให้นักพัฒนาสามารถสร้างส่วนติดต่อผู้ใช้ที่สวยงามด้วยแอนิเมชั่น 3 มิติและสีสันสดใส โดยใช้โค้ดที่ซับซ้อนน้อยลง เป็นเอนจิ้นการเรนเดอร์แบบเวกเตอร์ที่ใช้การเร่งความเร็วฮาร์ดแวร์ของการ์ดกราฟิกสมัยใหม่ ทำให้ UI เร็วขึ้นและปรับขนาดได้สูง WPF ย่อมาจาก... Windows การเสนอ Foundation.

WPF ถือได้ว่าเป็นวิวัฒนาการต่อยอดจาก WinForms โดยมีระบบแสดงผลกราฟิกที่ใช้งานง่ายสำหรับ Windows และนำเสนอการแยกส่วนที่ชัดเจนระหว่างส่วนติดต่อผู้ใช้และตรรกะทางธุรกิจ

แอปพลิเคชัน WPF มักถูกใช้งานในรูปแบบโปรแกรมเดสก์ท็อปแบบสแตนด์อโลน และยังสามารถฝังตัวเป็นอ็อบเจ็กต์ในแอปพลิเคชันอื่นๆ ได้อีกด้วย

ทำไมต้อง WPF?

มีเหตุผลมากมายที่ควรใช้แพลตฟอร์ม WPF เหตุผลสำคัญบางประการ ได้แก่:

  • แพลตฟอร์มที่เหมาะสำหรับการใช้งานหากคุณต้องการจัดการกับสื่อประเภทต่างๆ
  • WPF ช่วยให้คุณสร้างส่วนติดต่อผู้ใช้ที่มีธีมได้ นอกจากนี้ยังช่วยคุณเมื่อต้องการโหลดส่วนใดส่วนหนึ่งของส่วนติดต่อผู้ใช้ หรือต้องการผูกข้อมูล XML
  • ช่วยให้คุณสามารถใช้ประโยชน์จากไลบรารีคลาส .NET ขนาดใหญ่ตามที่ถูกสร้างขึ้น เทคโนโลยี.เน็ต
  • ความไม่ขึ้นกับความละเอียดหน้าจอ ทำให้แอปพลิเคชันที่พัฒนาโดยใช้ WPF สามารถทำงานได้ทั้งบนหน้าจอแท็บเล็ตขนาดเล็กหรือจอภาพขนาด 20 นิ้ว
  • WPF สร้างขึ้นบน DirectX แทนที่จะเป็น WinAPI โดยใช้ระบบกราฟิกของคอมพิวเตอร์ไคลเอ็นต์ จึงให้ประสิทธิภาพการเรนเดอร์กราฟิกที่เหนือกว่า
  • รองรับรูปแบบเอกสารแบบไหล ซึ่งช่วยให้ได้เลย์เอาต์คุณภาพระดับ "การจัดพิมพ์บนเดสก์ท็อป"
  • รูปลักษณ์และพฤติกรรมมีความสัมพันธ์กันอย่างหลวมๆ ทำให้ผู้ออกแบบและนักพัฒนาสามารถทำงานกับโมเดลสองแบบที่แยกจากกันได้
  • ในเฟรมเวิร์ก WPF คุณสามารถออกแบบเครื่องมือต่างๆ ด้วยกราฟิกโดยใช้เอกสาร XML อย่างง่าย แทนการวิเคราะห์โค้ด
  • ช่วยให้คุณสามารถใช้การเร่งความเร็วด้วยฮาร์ดแวร์ในการวาด GUI เพื่อประสิทธิภาพที่ดีขึ้น

ต่อไป เรามาดูกันว่ากรอบการทำงานนี้มีการพัฒนาอย่างไรเมื่อเวลาผ่านไป

ประวัติความเป็นมาของ WPF

Windows 1.0 เป็นสภาพแวดล้อม GUI แรกจาก Microsoftมันทำงานเป็นเลเยอร์อยู่บนระบบปฏิบัติการ DOS โดยอาศัยระบบ GDI และ USER สำหรับกราฟิกและส่วนติดต่อผู้ใช้

DirectX เปิดตัวในปี 1995 ในฐานะระบบกราฟิกประสิทธิภาพสูงที่มุ่งเน้นเกมและสภาพแวดล้อมที่เกี่ยวข้องกับกราฟิกอื่นๆ ตลอดหลายปีที่ผ่านมา มีการออกเวอร์ชันต่างๆ มากมาย และ DirectX 9 ได้จัดเตรียมไลบรารีที่สามารถใช้กับโค้ด .NET แบบจัดการได้

เวอร์ชัน WPF ปีที่วางจำหน่าย เวอร์ชัน .Net เวอร์ชัน Visual Studio คุณสมบัติ
3.0 2006 3.0 N / A การเปิดตัวครั้งแรก
อย่างไรก็ตาม การพัฒนา WPF สามารถทำได้ด้วย VS 2005
3.5 2007 3.5 วีเอส 2008 การปรับเปลี่ยนและปรับปรุงใน:
แบบจำลองแอปพลิเคชัน, การผูกข้อมูล, การควบคุม, เอกสาร, คำอธิบายประกอบ และองค์ประกอบ UI 3 มิติ
SP3.5 1 2008 SP3.5 1 N / A รองรับหน้าจอเริ่มต้น การควบคุมเว็บเบราว์เซอร์ใหม่ รองรับ DirectX pixel shader
4.0 2010 4.0 วีเอส 2010 ส่วนควบคุมใหม่: ปฏิทิน, ตารางข้อมูล, ตัวเลือกวันที่ รองรับการสัมผัสหลายจุดและการควบคุมแบบแมนนวล
4.5 2012 4.5 วีเอส 2012 เริ่มต้นระบบได้เร็วขึ้น ประสิทธิภาพดีขึ้นเมื่อแสดงชุดข้อมูลขนาดใหญ่
มีส่วนควบคุม Ribbon ใหม่และอินเทอร์เฟซ INotifyDataErrorInfo สำหรับการตรวจสอบความถูกต้องของข้อมูล
4.5.1 2013 4.5.1 วีเอส 2013 ปรับปรุงประสิทธิภาพและความน่าเชื่อถือเล็กน้อย
4.5.2 2014 4.5.2 NA ไม่มีการเปลี่ยนแปลงครั้งสำคัญ
4.6 2015 4.6 วีเอส 2015 รองรับหน้าต่างลูกแบบโปร่งใส
การปรับปรุง HDPI และ Touch
4.8 2019 4.8 วีเอส 2019 เวอร์ชันหลักสุดท้ายของ .NET Framework พร้อมการแก้ไขปัญหาสำหรับหน้าจอความละเอียดสูง (High-DPI) และการปรับปรุงด้านการเข้าถึงสำหรับผู้พิการ
.NET Core 3.0 ขึ้นไป ฮิตปัจจุบัน .NET Core 3.0 ถึง .NET 10 VS 2019/2022 WPF กลายเป็นโอเพนซอร์สและมาพร้อมกับ .NET รุ่นใหม่ (แอปพลิเคชันยังคงใช้งานได้) Windows-เท่านั้น).

ปัจจุบัน WPF ไม่ได้ถูกกำหนดเวอร์ชันแยกต่างหากจาก .NET อีกต่อไปแล้ว ตั้งแต่ปี 2019 เป็นต้นมา WPF ได้ถูกรวมเป็นส่วนประกอบโอเพนซอร์สของแพลตฟอร์ม .NET รุ่นใหม่ และเวอร์ชันปัจจุบันได้ถูกรวมอยู่ใน .NET 10 ซึ่งเปิดตัวในเดือนพฤศจิกายน 2025 ในรูปแบบเวอร์ชันสนับสนุนระยะยาว (LTS)

คุณสมบัติของ WPF

แผนภาพด้านล่างแสดงการจัดกลุ่มความสามารถหลักของ WPF ซึ่งมีรายละเอียดอธิบายไว้หลังจากนั้น

คุณสมบัติของ WPF
คุณสมบัติของ WPF
  • เอกสารและการพิมพ์
  • ความปลอดภัย การเข้าถึง และการแปลเป็นภาษาท้องถิ่น
  • เสนอความสามารถในการทำงานร่วมกันกับ Windows การควบคุมแบบฟอร์ม
  • Direct3D ใช้ในแอปพลิเคชันกราฟิกที่ประสิทธิภาพเป็นสิ่งสำคัญ
  • ใช้ฮาร์ดแวร์การ์ดแสดงผลสำหรับการเรนเดอร์
  • กราฟิกแบบเวกเตอร์ช่วยให้คุณสามารถปรับขนาดแอปพลิเคชันของคุณได้โดยไม่สูญเสียคุณภาพ
  • WPF รองรับระบบพิกเซลเชิงตรรกะแบบจุดลอยตัวและสี ARGB 32 บิต
  • กำหนดสไตล์และเทมเพลตการควบคุมใหม่
  • การสร้างแบบอักษรสากลจากแบบอักษรผสม
  • การแสดงผลข้อความใน WPF ใช้ประโยชน์จากเทคโนโลยี ClearType
  • ช่วยให้คุณใช้เทคนิคการแคชข้อความที่แสดงผลล่วงหน้าในหน่วยความจำวิดีโอ
  • แนวทางที่อิงตามทรัพยากรสำหรับการควบคุมทุกอย่าง
  • ตัวจับเวลาการนำเสนอเริ่มต้นและจัดการโดย WPF
  • รองรับความสัมพันธ์ระหว่างวิดีโอและภาพเคลื่อนไหวด้วย
  • ใน WPF สไตล์คือชุดของคุณสมบัติที่ควรนำไปใช้กับเนื้อหาที่ใช้สำหรับการแสดงผลทางภาพ
  • เทมเพลตใน WPF ช่วยให้คุณสามารถเปลี่ยนแปลงส่วนติดต่อผู้ใช้ (UI) ของเอกสารได้
  • คำสั่งต่างๆ นั้นกระชับกว่าtracและเวอร์ชันเหตุการณ์ที่เชื่อมโยงกันอย่างหลวมๆ
  • การรองรับคำสั่ง WPF จะช่วยลดจำนวนโค้ดที่เราต้องเขียน

ต่อไปใน WPF นี้ บทช่วยสอน C #เราจะเรียนรู้เกี่ยวกับประเภทหลักและโครงสร้างพื้นฐานของ WPF

ประเภทแกน WPF และโครงสร้างพื้นฐาน

คลาสใน WPF แบ่งออกเป็นสี่ประเภท:

  • UIองค์ประกอบ
  • กรอบองค์ประกอบ
  • เนื้อหาองค์ประกอบ
  • กรอบเนื้อหาองค์ประกอบ

คลาสเหล่านี้เรียกว่าคลาสองค์ประกอบพื้นฐาน ซึ่งเป็นรากฐานสำหรับแบบจำลองการประกอบส่วนติดต่อผู้ใช้

ส่วนติดต่อผู้ใช้ของ WPF ประกอบด้วยองค์ประกอบต่างๆ ที่จัดเรียงเป็นโครงสร้างลำดับชั้นแบบต้นไม้ เรียกว่า โครงสร้างต้นไม้ขององค์ประกอบ (Element Tree) โครงสร้างต้นไม้ขององค์ประกอบเป็นวิธีที่ใช้งานง่ายในการจัดวางส่วนติดต่อผู้ใช้ และเป็นโครงสร้างที่ช่วยให้คุณเข้าถึงบริการ UI ที่ทรงพลังได้

xaml

ภาษามาร์กอัปแอปพลิเคชันที่ขยายได้ หรือที่เรียกว่า “XAML” (อ่านว่า “แซมเมล”) เป็นวิธีการกำหนดส่วนติดต่อผู้ใช้แบบประกาศ (declarative)

นี่คือคำจำกัดความ XAML ของปุ่มธรรมดา:

<Button
FontSize="16"
HorizontalAlignment="Center"
VerticalAlignment="Center"
>
Say Hello Guru99</Button>

ข้อดีของการใช้ภาษา XAML:

  • XAML แยกส่วนการแสดงผลฝั่ง front-end ออกจากตรรกะฝั่ง back-end
  • XAML เป็นวิธีที่ง่ายที่สุดในการแสดงส่วนต่อประสานกับผู้ใช้
  • XAML ทำงานร่วมกับเครื่องมือออกแบบได้อย่างมีประสิทธิภาพ

ควบคุม

เฟรมเวิร์ก WPF รองรับคอนโทรลที่มีประโยชน์มากมาย เช่น:

  • การควบคุมการแก้ไข เช่น ข้อความBox, ตรวจสอบBox, เรดิโอบัตตัน
  • การควบคุมรายการ เช่น รายการBox, ลิสต์วิว, ทรีวิว
  • ข้อมูลผู้ใช้ เช่น Label, WPF ProgressBar, ToolTip
  • การดำเนินการ เช่น เมนู ปุ่ม และแถบเครื่องมือ
  • ลักษณะที่ปรากฏเช่น Border, WPF Image และ Viewbox
  • กล่องโต้ตอบทั่วไป เช่น OpenFileDialog และ PrintDialog
  • คอนเทนเนอร์ต่างๆ เช่น TabControl, ScrollBar และ GroupBox
  • รูปแบบการจัดวาง เช่น DockPanel, StackPanel และ Grid
  • การนำทาง เช่น Frame และ Hyperlink

รูปลักษณ์ของส่วนควบคุมสามารถปรับแต่งตามสไตล์และเทมเพลตได้โดยไม่ต้องเขียนโปรแกรม คุณยังสามารถสร้างการควบคุมแบบกำหนดเองได้โดยการสืบทอดคลาสใหม่จากคลาสพื้นฐานที่เหมาะสม

ลักษณะ

WPF มีคุณสมบัติสำหรับปรับแต่งรูปลักษณ์ของแอปพลิเคชันของคุณ ช่วยให้คุณสามารถตั้งค่าวัตถุและค่าต่างๆ เช่น แบบอักษร พื้นหลัง ฯลฯ

คุณลักษณะสไตล์ช่วยให้คุณกำหนดรูปลักษณ์เฉพาะของผลิตภัณฑ์ทั้งหมดให้เป็นมาตรฐานได้ ช่วยให้คุณสามารถแทนที่ลักษณะที่ปรากฏเริ่มต้นในขณะที่ยังคงลักษณะการทำงานเริ่มต้นไว้ได้

เทมเพลตข้อมูลช่วยให้คุณควบคุมการแสดงผลเริ่มต้นของข้อมูลที่ผูกไว้ได้ และด้วยความช่วยเหลือของธีม คุณสามารถใช้รูปแบบการแสดงผลของระบบปฏิบัติการได้อย่างง่ายดาย

เค้าโครงและแผง

การจัดวางเลย์เอาต์ช่วยให้คุณกำหนดตำแหน่งและขนาดของส่วนควบคุมได้อย่างเหมาะสม เป็นส่วนหนึ่งของกระบวนการสร้างสรรค์การนำเสนอสำหรับผู้ใช้ เฟรมเวิร์ก WPF ช่วยให้กระบวนการจัดวางเลย์เอาต์ง่ายขึ้นและปรับเปลี่ยนรูปลักษณ์ของ UI ได้ดียิ่งขึ้น

โครงสร้างพื้นฐานของเลย์เอาต์มีให้เลือกใช้ 5 คลาสหลัก ได้แก่ 1) StackPanel 2) DockPanel 3) WrapPanel 4) Grid และ 5) Canvas

กราฟิก

WPF นำเสนอระบบกราฟิกที่ได้รับการปรับปรุง:

  • WPF ใช้หน่วยที่ไม่ขึ้นกับอุปกรณ์ ทำให้สามารถใช้งานได้โดยไม่ขึ้นอยู่กับความละเอียดและอุปกรณ์ พิกเซลแต่ละพิกเซลที่ไม่ขึ้นกับอุปกรณ์จะปรับขนาดโดยอัตโนมัติตามการตั้งค่าจุดต่อนิ้วของระบบ
  • WPF ใช้ double แทน float และรองรับสีที่หลากหลายยิ่งขึ้น
  • เอ็นจิ้นกราฟิก WPF ได้รับการออกแบบในลักษณะที่สามารถใช้ประโยชน์จากฮาร์ดแวร์กราฟิกได้เมื่อพร้อมใช้งาน

เอกสารและการพิมพ์

เฟรมเวิร์ก WPF มีเอกสารให้เลือก 3 ประเภท:

  • เอกสารคงที่: เอกสารประเภทนี้รองรับ WYSIWวายจีนำเสนอ
  • เอกสารการไหล: ช่วยให้คุณปรับและจัดเรียงเนื้อหาใหม่ตามตัวแปรรันไทม์ เช่น ขนาดหน้าต่างและความละเอียดของอุปกรณ์
  • เอกสาร XPS: XPS คือรูปแบบเอกสารอิเล็กทรอนิกส์แบบมีหมายเลขหน้า ที่แสดงข้อมูลในรูปแบบ XML โดย XPS เป็นรูปแบบเอกสารแบบเปิดและได้มาตรฐาน

WPF ช่วยให้ควบคุมระบบการพิมพ์ได้ดียิ่งขึ้น รวมถึงการพิมพ์ระยะไกลและคิวการพิมพ์ นอกจากนี้ เอกสาร XPS สามารถพิมพ์ได้โดยตรงโดยไม่ต้องแปลงเป็นรูปแบบการพิมพ์ก่อน

เมื่อเข้าใจส่วนประกอบพื้นฐานแล้ว เรามาดูกันว่าชิ้นส่วนเหล่านี้ประกอบเข้าด้วยกันอย่างไร

WPF Archiเทคเจอร์

WPF เป็นส่วนหนึ่งของเฟรมเวิร์ก .NET ประกอบด้วยทั้งโค้ดที่จัดการได้และโค้ดที่จัดการไม่ได้ ส่วนประกอบสำคัญของสถาปัตยกรรม WPF อธิบายไว้ในภาพด้านล่าง:

WPF Archiเทคเจอร์

WPF Archiเทคเจอร์

ส่วนประกอบของสถาปัตยกรรม WPF

  • กรอบการนำเสนอ: ช่วยให้คุณสร้างองค์ประกอบระดับบนสุด เช่น ตัวควบคุม สไตล์ เลย์เอาต์ หน้าต่าง ฯลฯ
  • PresentationCore: มันเก็บประเภทพื้นฐาน เช่น UIElement และ Visual ซึ่งเป็นที่มาของคอนโทรลและรูปร่างทั้งหมดใน PresentationFramework.dll
  • CLR: มันทำให้กระบวนการพัฒนามีประสิทธิผลโดยนำเสนอคุณสมบัติเช่น การจัดการหน่วยความจำ, การจัดการข้อผิดพลาด ฯลฯ
  • มิลคอร์: Milcore เป็นส่วนหนึ่งของโค้ดที่ไม่มีการจัดการซึ่งมีการบูรณาการอย่างแน่นหนากับ DirectX
  • DirectX: DirectX คือ API ระดับต่ำที่ใช้ในการแสดงผลกราฟิกของ WPF โดย DirectX จะทำงานร่วมกับไดรเวอร์และแสดงผลเนื้อหา
  • ผู้ใช้32: User32 เป็น API หลักที่โปรแกรมหลายโปรแกรมใช้งานกันอย่างแพร่หลาย ทำหน้าที่จัดการหน่วยความจำและการแยกกระบวนการทำงาน User32 ช่วยให้คุณตัดสินใจได้ว่าจะวางองค์ประกอบใดไว้ที่ใดบนหน้าจอ
  • เคอร์เนล: อินพุตเริ่มต้นจากสัญญาณบนไดรเวอร์อุปกรณ์โหมดเคอร์เนล และถูกส่งต่อไปยังกระบวนการที่ถูกต้องโดยการเชื่อมต่อกับ Windows เคอร์เนลและ User32

การผูกข้อมูล WPF

การผูกข้อมูล (Data binding) เป็นหนึ่งในแนวคิดที่ทรงพลังที่สุดใน WPF แทนที่จะเขียนโค้ดเพื่อคัดลอกค่าระหว่างคอนโทรลและอ็อบเจ็กต์ด้วยตนเอง คุณเพียงแค่ประกาศการเชื่อมต่อใน XAML และ WPF จะทำการซิงโครไนซ์ทั้งสองฝั่งโดยอัตโนมัติ ตัวอย่างเช่น:

<TextBox Text="{Binding Path=StudentName, Mode=TwoWay}" />

WPF รองรับโหมดการผูกข้อมูลสี่โหมด:

  • วันเวย์: ระบบควบคุมจะอัปเดตเมื่อข้อมูลต้นทางเปลี่ยนแปลง
  • ทูเวย์: การเปลี่ยนแปลงเกิดขึ้นในทั้งสองทิศทางระหว่างตัวควบคุมและแหล่งกำเนิด
  • วันไทม์: ตัวควบคุมจะอ่านค่าจากแหล่งข้อมูลเพียงครั้งเดียวเท่านั้น ในขณะโหลดข้อมูล
  • OneWayToSource: การควบคุมจะส่งค่าไปยังแหล่งที่มา ไม่ใช่ในทางกลับกัน

การผูกข้อมูล (Data binding) ยังเป็นกลไกสำคัญเบื้องหลังรูปแบบ MVVM (Model-View-ViewModel) ซึ่งเป็นสถาปัตยกรรมที่พบได้บ่อยที่สุดสำหรับแอปพลิเคชัน WPF ระดับมืออาชีพ เนื่องจากช่วยให้ส่วนแสดงผล (View) อยู่ใน XAML ในขณะที่ส่วนตรรกะ (Logical) อยู่ในคลาส C# ที่สามารถทดสอบได้

💡 เคล็ดลับ: โปรดใช้งานอินเทอร์เฟซ INotifyPropertyChanged ในคลาสข้อมูลของคุณ หากไม่มีอินเทอร์เฟซนี้ UI จะไม่รีเฟรชเมื่อค่าของคุณสมบัติเปลี่ยนแปลงในโค้ด

การติดตั้ง WPF

โปรดคลิกที่ลิงก์นี้เพื่อติดตั้ง WPF: https://www.guru99.com/download-install-visual-studio.html

ในบทต่อไปของบทเรียนการสร้างแอปพลิเคชัน WPF นี้ เราจะสร้างแอปพลิเคชัน WPF ตัวแรกของเรา

จะสร้างแอปพลิเคชัน WPF แรกของคุณได้อย่างไร

ในตัวอย่าง WPF นี้ เราจะพัฒนาแอปพลิเคชัน WPF พื้นฐาน ดังนั้น มาเริ่มการใช้งานแบบง่ายๆ โดยทำตามขั้นตอนที่ให้ไว้ในตัวอย่างแอปพลิเคชัน WPF ด้านล่างกันเลย

ขั้นตอน 1) ใน Visual Studio ให้ไปที่ ไฟล์ > สร้างใหม่ > โปรเจ็กต์

เมนูไฟล์ของ Visual Studio แสดงตัวเลือก "สร้างโปรเจ็กต์ใหม่"

ขั้นตอน 2) ในหน้าต่างโครงการใหม่

  1. เลือกแอป WPF
  2. ป้อนชื่อเป็น “MyWPF”
  3. คลิกตกลง

หน้าต่างโปรเจ็กต์ใหม่พร้อมเทมเพลตแอป WPF ที่เลือกไว้

ขั้นตอน 3) Visual Studio สร้างไฟล์สองไฟล์ตามค่าเริ่มต้น

  • ไฟล์ XAML (MainWindow.xaml)
  • ไฟล์ CS (MainWindow.xaml.cs)

Solution Explorer แสดงไฟล์ MainWindow.xaml และ MainWindow.xaml.cs

MainWindow.xaml มี

  1. หน้าต่างการออกแบบ
  2. ไฟล์ XAML

หน้าต่างออกแบบ MainWindow.xaml และตัวแก้ไข XAML ใน Visual Studio

ในหน้าต่าง XAML แท็กต่อไปนี้จะถูกเขียนโดยค่าเริ่มต้น:

แท็ก XAML เริ่มต้นที่สร้างขึ้นสำหรับหน้าต่าง WPF ใหม่

ตารางเป็นองค์ประกอบแรกตามค่าเริ่มต้น

ไฟล์ MainWindow.xaml.cs ประกอบด้วยโค้ดเบื้องหลังที่เกี่ยวข้องกับไฟล์ออกแบบ XAML:

ไฟล์โค้ดเบื้องหลัง MainWindow.xaml.cs สำหรับหน้าต่าง WPF

ขั้นตอน 4) ในกล่องเครื่องมือ

  1. ลากข้อความBox องค์ประกอบให้กับหน้าต่างการออกแบบ
  2. ข้อความBox จะปรากฏในหน้าต่างการออกแบบ
  3. คุณจะเห็นโค้ด XAML สำหรับข้อความBox ที่เพิ่ม

การลากข้อความBox จากกล่องเครื่องมือไปยังหน้าต่างออกแบบ WPF

ขั้นตอน 5) เปลี่ยนข้อความเป็น “โปรแกรม WPF ตัวแรก”

การแก้ไขข้อความBox คุณสมบัติข้อความสำหรับโปรแกรม WPF แรก

ขั้นตอน 6) คลิกปุ่มเริ่ม

ปุ่ม Start ของ Visual Studio สำหรับเรียกใช้งานแอปพลิเคชัน WPF

ขั้นตอน 7) คุณจะเห็นหน้าต่างในผลลัพธ์

หน้าต่างแอปพลิเคชัน WPF ที่กำลังทำงานอยู่ แสดงข้อความ "โปรแกรม WPF แรก"

ยินดีด้วย! คุณได้ออกแบบและสร้างแอปพลิเคชัน WPF แรกของคุณ ต่อไปในบทช่วยสอน WPF สำหรับผู้เริ่มต้น เราจะเห็นความแตกต่างระหว่าง WPF และ WinForms

WPF กับ WinForms

WPF วินฟอร์ม
เป็นเฟรมเวิร์กที่ใหม่กว่า ดังนั้นจึงสอดคล้องกับมาตรฐานปัจจุบันมากขึ้น มันเก่ากว่าดังนั้นจึงมีการทดลองและทดสอบมากกว่า
มันมีความยืดหยุ่นและมีฟังก์ชันการทำงานมากมาย คุณสามารถออกแบบแอปพลิเคชันที่ซับซ้อนได้โดยไม่ต้องเขียนโค้ดหรือซื้อส่วนเสริมเพิ่มเติม ไม่ได้มีฟีเจอร์มากมายนัก
นักพัฒนา 3rd การควบคุมงานปาร์ตี้เน้นความเข้ากันได้กับ WPF เนื่องจากเป็นเทคโนโลยีแห่งอนาคต มีการควบคุมของบุคคลที่สามมากมายที่คุณสามารถซื้อหรือรับได้ฟรี
XAML ช่วยให้คุณสร้างและแก้ไข GUI ได้อย่างง่ายดาย และยังช่วยแบ่งงานระหว่างนักออกแบบ (XAML) และโปรแกรมเมอร์ (C#, VB.NET เป็นต้น) ได้อีกด้วย In Windows แบบฟอร์มเหล่านี้มีโค้ดทั้งหมดเขียนไว้ในที่เดียว
ทักษะ XAML สามารถนำไปใช้กับเฟรมเวิร์กใหม่ๆ ได้โดยตรง เช่น WinUI 3, .NET MAUI และ Avalonia UI ทักษะ WinForms ส่วนใหญ่ใช้ได้กับระบบคลาสสิก Windows การพัฒนาบนเดสก์ท็อป
ชุดควบคุมในกล่องของ WPF มีข้อจำกัด การควบคุมภายในกล่องมีประสิทธิภาพมาก

ประเภทของแอปพลิเคชันที่สร้างด้วย WPF

  • WPF ใช้สำหรับการทำงานแบบสแตนด์อโลน Windows แอปพลิเคชันบนเดสก์ท็อป เช่น เครื่องมือสำหรับธุรกิจระดับองค์กร แดชบอร์ด เทอร์มินัลการซื้อขาย และซอฟต์แวร์ออกแบบ
  • Windows แบบฟอร์มและหน้า WPF สามารถอยู่ร่วมกันในแอปพลิเคชันเดียวกันได้
  • คุณสามารถพัฒนาแอปพลิเคชันที่มีรูปแบบการนำทางแบบหน้า/หน้าต่างได้

WPF ใน .NET สมัยใหม่

Microsoft WPF เปิดเป็นโอเพนซอร์สในเดือนธันวาคม 2018 และตั้งแต่ .NET Core 3.0 (2019) เฟรมเวิร์กนี้ก็ถูกรวมอยู่ในทุกเวอร์ชันของ .NET รุ่นใหม่ จนถึง .NET 10 การย้ายแอปพลิเคชันไปยัง .NET รุ่นใหม่จะทำให้เริ่มต้นทำงานได้เร็วขึ้น การปรับใช้ทำได้ง่ายขึ้นผ่านการเผยแพร่แบบครบวงจร และเข้าถึงคุณสมบัติของภาษา C# ในปัจจุบันได้ ในขณะที่โมเดลการเขียนโปรแกรมของ WPF ยังคงเหมือนเดิม

WPF ยังคงอยู่ Windows-เท่านั้น หากคุณกำลังเลือกเฟรมเวิร์กสำหรับเดสก์ท็อปในวันนี้ การเปรียบเทียบนี้จะช่วยคุณได้:

กรอบ ที่ดีที่สุดสำหรับ
WPF สมบูรณ์แบบ ครบครันด้วยฟีเจอร์ Windows แอปพลิเคชันบนเดสก์ท็อปที่มีระบบนิเวศขนาดใหญ่
WindowsUI 3 แอปพลิเคชันใหม่ที่มุ่งเป้าไปที่ยุคสมัยใหม่ Windows 11 รูปลักษณ์และความรู้สึก
.NET เมา แอปพลิเคชันข้ามแพลตฟอร์มที่ครอบคลุม Windows, macOS, Androidและ iOS

เนื่องจาก WPF ได้รับการดูแลรักษาอย่างต่อเนื่องและถูกนำไปใช้ในซอฟต์แวร์ระดับองค์กรอย่างลึกซึ้ง การเรียนรู้ WPF จึงยังคงเป็นการลงทุนที่คุ้มค่า เมื่อคุณคุ้นเคยกับการสร้างแอปพลิเคชันเหล่านี้แล้ว การฝึกฝนการใช้งานที่พบบ่อยที่สุดก็คุ้มค่าเช่นกัน คำถามสัมภาษณ์งาน WPF เพื่อกำหนดแนวคิดต่างๆ เช่น XAML, การผูกข้อมูล และโครงสร้างภาพให้คงที่

คำถามที่พบบ่อย

คุณต้องใช้ XAML สำหรับออกแบบส่วนติดต่อผู้ใช้ และ C# (หรือ VB.NET) สำหรับตรรกะการทำงานของแอปพลิเคชัน ความรู้พื้นฐานเกี่ยวกับการเขียนโปรแกรมเชิงวัตถุและไลบรารีคลาสของ .NET จะทำให้การเรียนรู้ WPF ง่ายขึ้นมาก

ไม่ WPF ขึ้นอยู่กับ DirectX และ Windows API จึงทำงานได้เฉพาะบน API เท่านั้น Windowsสำหรับการพัฒนา XAML ข้ามแพลตฟอร์ม โปรดพิจารณา อวาโลเนีย ยูไอ or .NET เมา.

ใช่ เครื่องมือเช่น นักบิน GitHub สามารถสร้างเลย์เอาต์ XAML, นิพจน์การผูกข้อมูล และสไตล์จากความคิดเห็น ซึ่งช่วยให้การเรียนรู้เร็วขึ้นและลดการเขียนมาร์กอัปซ้ำซ้อนสำหรับผู้เริ่มต้น

คุณสามารถรวม เอ็มแอล.เน็ต สำหรับการเรียนรู้ของเครื่องจักรในระดับท้องถิ่น หรือเรียกใช้บริการ AI บนคลาวด์ เช่น Azure เปิดโปรแกรม AI จากโค้ด C# ของคุณ จากนั้นแสดงผลลัพธ์ผ่านการผูกข้อมูลมาตรฐานของ WPF

ใช่แล้ว WPF เป็นโอเพนซอร์สภายใต้ใบอนุญาต MIT และคุณสามารถสร้างแอปพลิเคชันได้ฟรีโดยใช้ Visual Studio Community Edition

สรุปโพสต์นี้ด้วย: