Microsoft เปิดตัว Windows UI Library 3 Preview 4

ไอคอนเวลาอ่านหนังสือ 9 นาที. อ่าน


ผู้อ่านช่วยสนับสนุน MSpoweruser เราอาจได้รับค่าคอมมิชชันหากคุณซื้อผ่านลิงก์ของเรา ไอคอนคำแนะนำเครื่องมือ

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

WinUI เป็นเลเยอร์อินเทอร์เฟซผู้ใช้ที่มีการควบคุมและสไตล์ที่ทันสมัยสำหรับการสร้างแอพ Windows ทั้งเดสก์ท็อปและ UWP ในฐานะที่เป็นเลเยอร์ UI ดั้งเดิมใน Windows มันรวม Fluent Design ไว้ด้วยกัน ทำให้แอพ Windows แต่ละแอพมีความรู้สึกที่สวยงามตามที่ผู้ใช้คาดหวัง

[lwptoc title =”WinUI Library 3 ดูตัวอย่าง 4″ width=”40%” float=”right”]

WinUI 3 เป็นเวอร์ชันล่าสุดของเฟรมเวิร์ก WinUI ซึ่งจะวางจำหน่ายในปลายปีนี้ มันขยาย WinUI เป็นเฟรมเวิร์ก UX เต็มรูปแบบอย่างมาก ทำให้ WinUI พร้อมใช้งานสำหรับแอพ Windows ทุกประเภท ตั้งแต่ Win32 ถึง UWP เพื่อใช้เป็นเลเยอร์ UI เมื่อพร้อมแล้ว แอป Windows ทุกแอปจะสามารถใช้ประโยชน์จากการควบคุมที่ทันสมัยซึ่งทำงานโดยไม่คำนึงถึงเวอร์ชันของ Windows ที่กำลังใช้งานอยู่

ปล่อยวันนี้, WinUI 3 ดูตัวอย่าง 4 เป็นรุ่นตัวอย่างความเสถียรที่มีการแก้ไขข้อผิดพลาดที่สำคัญและการปรับปรุงทั่วไปอื่นๆ สำหรับกรอบงาน

ความสามารถที่นำมาใช้ในการแสดงตัวอย่าง 4

  • Parity กับ WinUI 2.5 (รวมถึงการควบคุม InfoBar, คุณสมบัติใหม่ใน ProgressRing และ NavigationView และการแก้ไขข้อผิดพลาด)
  • ความสามารถของแถบหัวเรื่องแบบกำหนดเอง: Window.ExtendsContentIntoTitleBar และ Window.SetTitleBar API ใหม่ที่ช่วยให้นักพัฒนาสามารถสร้างแถบชื่อเรื่องแบบกำหนดเองในแอปเดสก์ท็อปได้
  • รองรับ VirtualSurfaceImageSource

คุณลักษณะและความสามารถใหม่ที่นำมาใช้ในตัวอย่าง WinUI 3 ที่ผ่านมา

คุณลักษณะและความสามารถต่อไปนี้ถูกนำมาใช้ใน WinUI 3 Preview 1-3 และยังคงได้รับการสนับสนุนใน WinUI 3 Preview 4

  • ความสามารถในการสร้างแอปเดสก์ท็อปด้วย WinUI รวมถึง .NET5 สำหรับแอพ Win32
  • RadialGradientBrush
  • อัปเดต TabView
  • อัปเดตธีมมืด
  • การปรับปรุงและการปรับปรุงเพื่อ เว็บวิว2
    • รองรับ DPI . สูง
    • รองรับการปรับขนาดและย้ายหน้าต่าง
    • อัปเดตเพื่อกำหนดเป้าหมายเวอร์ชันล่าสุดของ Edge
    • ไม่จำเป็นต้องอ้างอิงแพ็คเกจ Nuget เฉพาะ WebView2 อีกต่อไป
  • SwapChainPanel
  • รองรับ MRT Core
    • สิ่งนี้ทำให้แอพเร็วขึ้นและเบาขึ้นเมื่อเริ่มต้นและให้การค้นหาทรัพยากรที่รวดเร็วยิ่งขึ้น
  • รองรับ ARM64
  • ลากและวางภายในและภายนอกแอพ
  • RenderTargetBitmap (ปัจจุบันมีเพียงเนื้อหา XAML – ไม่มีเนื้อหา SwapChainPanel)
  • การสนับสนุนเคอร์เซอร์แบบกำหนดเอง
  • อินพุตนอกเธรด
  • การปรับปรุงประสบการณ์การใช้เครื่องมือ / นักพัฒนาของเรา:
    • Live Visual Tree, Hot Reload, Live Property Explorer และเครื่องมือที่คล้ายกัน
    • Intellisense สำหรับ WinUI 3
  • การปรับปรุงที่จำเป็นสำหรับการโยกย้ายโอเพ่นซอร์ส

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับประโยชน์ของ WinUI 3 และแผนงาน WinUI โปรดดูที่ แผนงานไลบรารี UI ของ Windows บน GitHub

รายการข้อบกพร่องที่แก้ไขใน Preview 4

ด้านล่างนี้คือรายการบั๊กที่ผู้ใช้เผชิญซึ่งทีมได้แก้ไขตั้งแต่ตัวอย่างที่ 3 นอกจากนี้ยังมีงานมากมายที่เกิดขึ้นกับการรักษาเสถียรภาพโดยรอบและปรับปรุงการทดสอบของเรา

  • รุ่นนี้ใช้กับ CS/WinRT และ Windows SDK เวอร์ชันใหม่ ซึ่งแก้ไขจุดบกพร่องต่อไปนี้:
    • หยุดทำงานเมื่อผูกกับคุณสมบัติ URI โดยใช้ {Binding}
    • ฟังก์ชัน C#/WinRT Marshal ทำงานร่วมกันไม่ถูกต้องกับ .NET 5
  • WinUI 3 ขัดข้องเมื่อทำงานบน Windows Insider Builds
    • ขอบคุณผู้สนับสนุนชุมชนหลายคนสำหรับการรายงานจุดบกพร่องนี้บน GitHub!
  • WebView2 ไม่ใช้ภาษา/ภาษาของแอปโฮสต์กับ CoreWebView2Environment
  • การควบคุม Windows Community Toolkit DataGrid ทำให้แอปขัดข้องเมื่อเริ่มต้น/เมื่อแถบเลื่อนปรากฏขึ้น
    • ขอบคุณผู้สนับสนุนชุมชนหลายคนสำหรับการรายงานจุดบกพร่องนี้บน GitHub!
  • การเรนเดอร์หน้าเข้าสู่สถานะไม่ดีเมื่อเปลี่ยนโหมดการแสดงผล
  • ขัดข้องเมื่อใช้ Language ComboBox ใน CalendarView
  • เดสก์ท็อป WinUI 3: ไม่สามารถแท็บออกจาก WebView2
  • เดสก์ท็อป WinUI 3: TreeView พร้อม TreeViewNodes ที่ได้รับขัดข้อง
  • เดสก์ท็อป WinUI 3: ไม่สามารถป้อนข้อความลงในกล่องข้อความภายใน ContentDialog
  • เดสก์ท็อป WinUI 3: ALT และ F6 ไม่ทำงาน
  • SwapChainPanel ที่ลบออกเก่าจะแสดงบน SwapChain ใหม่
  • เดสก์ท็อป WinUI 3: ไม่สามารถเลื่อนด้วยแทร็กแพด
  • หยุดทำงานเมื่อใช้การควบคุม NavigationView กับหลายหน้าต่างในเธรดเดียวกัน
  • ปัญหาการช่วยสำหรับการเข้าถึง: แสดงการปรับโฟกัสในการเปิดใช้แอปเดสก์ท็อป WinUI
  • การละเมิดการเข้าถึงขณะเลื่อนใน DataGrid
  • เดสก์ท็อป WinUI 3: การวนแท็บไม่ทำงาน
  • การลากและวางบน GridView ล้มเหลวในแอปพลิเคชันเดสก์ท็อปด้วย WinUI Xaml Islands
  • ปัญหาการช่วยสำหรับการเข้าถึง: ไม่สามารถเลื่อนด้วยปุ่ม PageUp/PageDown บน WinUI 3 Desktop
  • WebView2 มีขนาดวิวพอร์ตไม่ถูกต้อง
  • WebView2 หยุดทำงานเมื่อคลิกหลังจากเปิด MenuFlyout
  • เดสก์ท็อป WinUI 3: ความพยายามที่จะลด DropDownButton หรือ Flyout ของ SplitButton ทำให้แอปขัดข้อง
  • WebView2: คลิกขวาสองครั้งที่เมาส์ทำให้เกิดข้อขัดข้อง
  • การคลิกที่ ToggleSplitButton ทำให้แอปพลิเคชันหยุดทำงาน
  • เดสก์ท็อป WinUI 3: หน้าต่าง DesktopWindowXamlSource ว่างปรากฏบนแถบงาน
  • เดสก์ท็อป WinUI 3: DataGrid ไม่แสดง
  • เดสก์ท็อป WinUI 3: ไม่สามารถวางไฟล์ลงใน Grid
  • เดสก์ท็อป WinUI 3: ItemsRepeater ขัดข้องใน WinUI 3 Preview 2
  • AccessViolationException เกิดขึ้นเมื่อมีการอัปเดตการผูก
  • เดสก์ท็อป WinUI 3: แอปขัดข้องเมื่อเลื่อน NavigationView
  • ItemsControl ไม่ได้รับการอัปเดตในขณะที่เพิ่มหรือลบรายการในคอลเลกชัน ItemsSource แบบไดนามิก
  • ข้อผิดพลาดในการคอมไพล์ C2760 ใน App.xaml.gh หากเปิดใช้งานโหมดความสอดคล้อง C++

ข้อ จำกัด และปัญหาที่ทราบ

รุ่นตัวอย่าง 4 เป็นเพียงการแสดงตัวอย่างที่มีจุดบกพร่อง ข้อจำกัด และปัญหาอื่นๆ เกี่ยวกับสถานการณ์รอบ ๆ แอปเดสก์ท็อปที่ใหม่เป็นพิเศษ

รายการต่อไปนี้เป็นปัญหาที่ทราบบางประการของ WinUI 3 Preview 4

เครื่องมือสำหรับนักพัฒนา

  • รองรับเฉพาะแอป C# และ C++/WinRT
  • แอปเดสก์ท็อปรองรับ .NET 5 และ C# 9 และต้องรวมอยู่ในแอป MSIX
  • แอป UWP รองรับ .NET Native และ C# 7.3
  • เครื่องมือสำหรับนักพัฒนาและ Intellisense อาจทำงานไม่ถูกต้องใน Visual Studio เวอร์ชัน 16.8
  • ไม่รองรับ XAML Designer
  • ไม่รองรับแอป C++/CX ใหม่ อย่างไรก็ตาม แอปที่มีอยู่ของคุณจะยังคงทำงานต่อไป (โปรดย้ายไปที่ C++/WinRT โดยเร็วที่สุด)
  • กำลังดำเนินการรองรับหลายหน้าต่างในแอปเดสก์ท็อป แต่ยังไม่สมบูรณ์และเสถียร
    • โปรดแจ้งข้อบกพร่องใน repo ของเราหากคุณพบปัญหาใหม่หรือการถดถอยที่มีพฤติกรรมหลายหน้าต่าง
  • ไม่รองรับการปรับใช้เดสก์ท็อปที่ไม่มีแพ็คเกจ
  • เมื่อเรียกใช้แอปเดสก์ท็อปโดยใช้ F5 ตรวจสอบให้แน่ใจว่าคุณกำลังเรียกใช้โครงการบรรจุภัณฑ์ การกดปุ่ม F5 บนโปรเจ็กต์แอปจะเป็นการเรียกใช้แอปที่ไม่มีแพ็คเกจ ซึ่ง WinUI 3 ยังไม่รองรับ

ไม่มีคุณสมบัติของแพลตฟอร์ม

  • รองรับ Xbox
  • รองรับ HoloLens
  • หน้าต่างป๊อปอัป
    • โดยเฉพาะอย่างยิ่ง ShouldConstrainToRootBounds คุณสมบัติจะทำหน้าที่เหมือนกับว่าถูกตั้งค่าเป็น .เสมอ trueโดยไม่คำนึงถึงมูลค่าทรัพย์สิน
  • รองรับหมึก
  • อะคริลิค
  • MediaElement และ MediaPlayerElement
  • ควบคุมแผนที่
  • RenderTargetBitmap สำหรับ SwapChainPanel และเนื้อหาที่ไม่ใช่ XAML
  • SwapChainPanel ไม่รองรับความโปร่งใส
  • Global Reveal ใช้พฤติกรรมทางเลือก แปรงแข็ง
  • ไม่รองรับ XAML Islands ในรุ่นนี้
  • ไลบรารีระบบนิเวศของบุคคลที่สามจะทำงานได้ไม่เต็มที่
  • IME ไม่ทำงาน

ปัญหาที่ทราบ

  • Alt+F4 ไม่ปิดหน้าต่างแอปเดสก์ท็อป
  • เนื่องจากมีการเปลี่ยนแปลงกับ หน้าต่างหลัก, WinRT API ต่อไปนี้อาจไม่ทำงานกับ เดสก์ทอป แอพตามที่คาดไว้:
    • ApplicationView และ API ที่เกี่ยวข้องทั้งหมดจะไม่ทำงานอีกต่อไป
    • CoreApplicationView และ API ที่เกี่ยวข้องทั้งหมดจะไม่ทำงานอีกต่อไป
    • ทั้งหมด GetForCurrentView API อาจไม่รองรับ ตัวอย่างเช่น CoreInputView.GetForCurrentView.
    • CoreWindow.GetForCurrentThread ตอนนี้จะคืนค่าเป็นโมฆะ

    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ WinRT API ในแอป WinUI 3 Desktop โปรดดูที่ Windows Runtime APIs พร้อมใช้งานสำหรับแอปเดสก์ท็อป.

  • เหตุการณ์ Windows.UI.ViewManagement.UISettings.ColorValuesChanged ไม่ได้รับการสนับสนุนในแอปเดสก์ท็อปอีกต่อไป ซึ่งอาจทำให้เกิดปัญหาหากคุณใช้เพื่อตรวจหาการเปลี่ยนแปลงในธีมของ Windows
  • รุ่นนี้มี API ทดลองบางตัว สิ่งเหล่านี้ยังไม่ได้รับการทดสอบอย่างละเอียดโดยทีมและอาจมีปัญหาที่ไม่ทราบสาเหตุ โปรด แจ้งข้อผิดพลาด ใน repo ของเราหากคุณพบปัญหาใด ๆ
  • ก่อนหน้านี้ หากต้องการรับอินสแตนซ์ CompositionCapabilities คุณจะต้องเรียก องค์ประกอบCapabilites.GetForCurrentView(). อย่างไรก็ตาม ความสามารถที่ได้รับจากการเรียกครั้งนี้คือ ไม่ ขึ้นอยู่กับมุมมอง เพื่อแก้ไขและสะท้อนถึงสิ่งนี้ เราได้ลบ GetForCurrentView() แบบคงที่ในรุ่นนี้ ดังนั้นตอนนี้คุณสามารถสร้าง องค์ประกอบความสามารถ วัตถุโดยตรง
  • สำหรับแอป C# UWP: เฟรมเวิร์ก WinUI 3 คือชุดของส่วนประกอบ WinRT ซึ่งสามารถใช้ได้จาก C++ (โดยใช้ C++/WinRT) หรือ C# เมื่อใช้ C# จะมี .NET สองเวอร์ชัน ขึ้นอยู่กับรุ่นของแอป: เมื่อใช้ WinUI 3 ในแอป UWP คุณจะใช้ .NET Native; เมื่อใช้ในแอปเดสก์ท็อป คุณใช้ .NET 5 (และ C#/WinRT) เมื่อใช้ C# สำหรับแอป WinUI 3 ใน UWP จะมีเนมสเปซ API ที่แตกต่างกันเล็กน้อยเมื่อเทียบกับ C# ในแอป WinUI 3 Desktop หรือ C# แอป WinUI 2: บางประเภทอยู่ในa Microsoft เนมสเปซมากกว่า a System เนมสเปซ ตัวอย่างเช่น แทนที่จะเป็น INotifyPropertyChanged อินเทอร์เฟซอยู่ใน System.ComponentModel เนมสเปซอยู่ใน Microsoft.UI.Xaml.Data เนมสเปซสิ่งนี้ใช้กับ:
    • INotifyPropertyChanged (และประเภทที่เกี่ยวข้อง)
    • INotifyCollectionChanged
    • ICommand

    พื้นที่ System เวอร์ชันเนมสเปซยังคงมีอยู่ แต่ไม่สามารถใช้กับ WinUI 3 ได้ ซึ่งหมายความว่า ObservableCollection ไม่ทำงานเหมือนในแอป WinUI 3 C # UWP สำหรับวิธีแก้ปัญหา โปรดดูที่ คอลเลกชั่นInterop sample ใน ตัวอย่างแกลเลอรีการควบคุม XAML.

อะไรจะเกิดขึ้นต่อไป?

นักพัฒนาสามารถดูรายละเอียดของ Microsoft ได้ คุณลักษณะแผนงาน เพื่อดูว่าฟีเจอร์เฉพาะจะถูกนำเข้าสู่ WinUI 3 เมื่อใด

ติดตั้ง WinUI 3 ดูตัวอย่าง 4

WinUI 3 Preview 4 มีเทมเพลตโปรเจ็กต์ Visual Studio เพื่อช่วยเริ่มต้นสร้างแอปด้วยอินเทอร์เฟซผู้ใช้แบบ WinUI และแพ็คเกจ NuGet ที่มีไลบรารี WinUI ในการติดตั้ง WinUI 3 Preview 4 ให้ทำตามขั้นตอนเหล่านี้

ชุดเครื่องมือชุมชนของ Windows

หากคุณกำลังใช้ Windows Community Toolkit ดาวน์โหลดเวอร์ชันล่าสุด.

นอกเหนือจาก ข้อจำกัดและปัญหาที่ทราบการสร้างแอปโดยใช้โปรเจ็กต์ WinUI จะคล้ายกับการสร้างแอป UWP ด้วย XAML และ WinUI 2.x ดังนั้น . ส่วนใหญ่ เอกสารแนะนำ สำหรับแอพ UWP และ Windows.UI เนมสเปซ WinRT ใน Windows SDK สามารถใช้ได้

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

เอกสารอ้างอิง API สำหรับรุ่นนี้กำลังจะมาในเร็วๆ นี้ แต่ในระหว่างนี้ นักพัฒนาสามารถดูได้ที่ เอกสารอ้างอิง WinUI 3 API สำหรับการแสดงตัวอย่าง 3.

หากคุณสร้างโปรเจ็กต์โดยใช้ WinUI 3 Preview 3 คุณสามารถอัปเกรดโปรเจ็กต์เพื่อใช้ Preview 4 ดู ที่เก็บ WinUI GitHub สำหรับคำแนะนำโดยละเอียด

เพื่อใช้ประโยชน์จากคุณสมบัติเครื่องมือล่าสุดที่เพิ่มลงใน WinUI 3 Preview 4 เช่น Hot Reload, Live Visual Tree และ Live Property Explorer คุณต้องใช้ Visual Studio เวอร์ชันตัวอย่างล่าสุดที่มีการแสดงตัวอย่าง WinUI 3 ล่าสุด และต้องแน่ใจว่าได้เปิดใช้งาน เครื่องมือ WinUI ในคุณสมบัติการแสดงตัวอย่าง Visual Studio ตามที่อธิบายไว้ใน คำแนะนำที่นี่.

ดู WinUI 3 Preview 4 สาขาของ XAML Controls Gallery สำหรับแอปตัวอย่างที่มีการควบคุมและฟีเจอร์ของ WinUI 3 Preview 4 ทั้งหมด


ตัวอย่างของแอปแกลเลอรีควบคุม WinUI 3 Preview 4 XAML

การเปิดตัวตัวอย่าง WinUI 3 นี้มีไว้สำหรับการประเมินในช่วงต้นและเพื่อรวบรวมข้อเสนอแนะจากชุมชนนักพัฒนา มันควรจะ ไม่ ใช้สำหรับแอพการผลิต Microsoft จะดำเนินการจัดส่งรุ่นตัวอย่าง WinUI 3 ต่อไปในปี 2021 ตามด้วยรุ่นแรกอย่างเป็นทางการ ซึ่งได้รับการสนับสนุนในเดือนมีนาคม 2021

กรุณาใช้ ที่เก็บ WinUI GitHub เพื่อให้ข้อเสนอแนะและบันทึกข้อเสนอแนะและปัญหา

ข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อต่างๆ: นักพัฒนา, ไมโครซอฟท์, winui 3 แสดงตัวอย่าง 4