Microsoft เปิดตัว Windows UI Library 3 Preview 4
9 นาที. อ่าน
เผยแพร่เมื่อ
อ่านหน้าการเปิดเผยข้อมูลของเราเพื่อดูว่าคุณจะช่วย 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
เนมสเปซมากกว่า aSystem
เนมสเปซ ตัวอย่างเช่น แทนที่จะเป็น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 ตามที่อธิบายไว้ใน คำแนะนำที่นี่.
XAML Controls Gallery (สาขา WinUI 3 ดูตัวอย่าง 4)
ดู 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 เพื่อให้ข้อเสนอแนะและบันทึกข้อเสนอแนะและปัญหา
ฟอรั่มผู้ใช้
ข้อความ 0