Microsoft släpper Windows UI Library 3 Preview 4

Lästid ikon 9 min. läsa


Läsare hjälper till att stödja MSpoweruser. Vi kan få en provision om du köper via våra länkar. Verktygstipsikon

Läs vår informationssida för att ta reda på hur du kan hjälpa MSPoweruser upprätthålla redaktionen Läs mer

WinUI är ett användargränssnittslager som innehåller moderna kontroller och stilar för att bygga Windows-appar, både Desktop och UWP. Som det inbyggda användargränssnittet i Windows förkroppsligar det flytande design, vilket ger varje Windows-app den polerade känslan som användarna förväntar sig.

[lwptoc title=”WinUI Library 3 Preview 4″ width=”40%” float=”right”]

WinUI 3 är den senaste versionen av WinUI-ramverket, som levereras senare i år. Det utökar WinUI dramatiskt till ett fullständigt UX-ramverk, vilket gör WinUI tillgängligt för alla typer av Windows-appar – från Win32 till UWP – för användning som UI-lager. När de är klara kommer varje Windows-app att kunna dra fördel av sina moderna kontroller som fungerar oavsett vilken Windows-version de körs på.

Släpps idag, WinUI 3 Preview 4 är en stabilitetsförhandsversion som innehåller kritiska buggfixar och andra allmänna förbättringar för ramverket.

Funktioner introducerade i Preview 4

  • Paritet med WinUI 2.5 (inkluderar InfoBar-kontroll, nya funktioner i ProgressRing och NavigationView och buggfixar)
  • Anpassade titelradsfunktioner: nya API:er för Window.ExtendsContentIntoTitleBar och Window.SetTitleBar som tillåter utvecklare att skapa anpassade titelrader i skrivbordsappar.
  • VirtualSurfaceImageSource-stöd

Nya funktioner och möjligheter introducerade i tidigare WinUI 3-förhandsvisningar

Följande funktioner och möjligheter introducerades i WinUI 3 Preview 1-3 och stöds fortfarande i WinUI 3 Preview 4.

  • Möjlighet att skapa skrivbordsappar med WinUI, inklusive .NET 5 för Win32-appar
  • RadialGradientPensel
  • TabView-uppdateringar
  • Uppdateringar av mörkt tema
  • Förbättringar och uppdateringar av webbvy2
    • Stöd för hög DPI
    • Stöd för fönsterstorlek och flyttning
    • Uppdaterad för att rikta in den nyare versionen av Edge
    • Det är inte längre nödvändigt att referera till ett WebView2-specifikt Nuget-paket
  • SwapChainPanel
  • MRT Core Support
    • Detta gör appar snabbare och lättare vid start och ger snabbare resurssökning.
  • ARM64-stöd
  • Dra och släpp inuti och utanför apparna
  • RenderTargetBitmap (för närvarande endast XAML-innehåll – inget SwapChainPanel-innehåll)
  • Anpassad markörstöd
  • Ingång utanför tråden
  • Förbättringar av vår verktygs- / utvecklarupplevelse:
    • Live Visual Tree, Hot Reload, Live Property Explorer och liknande verktyg
    • Intellisense för WinUI 3
  • Förbättringar som krävs för migrering med öppen källkod

För mer information om både fördelarna med WinUI 3 och WinUI roadmap, se Windows UI Library Roadmap på GitHub.

Lista över buggar fixade i Preview 4

Nedan är en lista över användarvända buggar som teamet har fixat sedan Preview 3. Det har också pågått mycket arbete med att kring stabilisering och förbättring av våra tester.

  • Den här utgåvan har antagit en ny version av CS/WinRT och Windows SDK, som fixade följande buggar:
    • Kraschar vid bindning till en URI-egenskap med {Binding}
    • C#/WinRT Marshal-funktionerna samverkar inte korrekt med .NET 5
  • WinUI 3 kraschar när den körs på Windows Insider Builds
    • Tack till flera gemenskapsbidragsgivare för att du rapporterade detta fel på GitHub!
  • WebView2 tillämpar inte värdappens språk/lokal på CoreWebView2Environment
  • Windows Community Toolkit DataGrid-kontroll kraschar app vid start/när rullningslister visas
    • Tack till flera gemenskapsbidragsgivare för att du rapporterade detta fel på GitHub!
  • Sidåtergivningen hamnar i ett dåligt tillstånd när visningsläget ändras
  • Crash när du använder Language ComboBox i CalendarView
  • WinUI 3 Desktop: Kan inte ta bort från WebView2
  • WinUI 3 Desktop: TreeView med härledda TreeViewNodes kraschar
  • WinUI 3 Desktop: Kan inte skriva in text i TextBox inuti ContentDialog
  • WinUI 3 Desktop: ALT och F6 fungerar inte
  • Gamla borttagna SwapChainPanel renderas ovanpå nya SwapChain
  • WinUI 3 Desktop: Kan inte rulla med styrplattan
  • Crash när du använder NavigationView-kontroll med flera fönster i samma tråd
  • Tillgänglighetsproblem: Visa fokus direkt vid start av WinUI-skrivbordsapp
  • Åtkomstöverträdelse när du rullar i DataGrid
  • WinUI 3 Desktop: Flikcykling fungerar inte
  • Dra och släpp på GridView misslyckas i skrivbordsapplikationen med WinUI Xaml Islands
  • Tillgänglighetsproblem: Det går inte att rulla med PageUp/PageDown-tangenterna på WinUI 3 Desktop
  • WebView2 har fel visningsportstorlek
  • WebView2 kraschar vid klick efter att ha öppnat MenuFlyout
  • WinUI 3 Desktop: Försök att ta ner DropDownButton eller SplitButtons utslag orsakar appkrasch
  • WebView2: Dubbel högerklicka på musen orsakar en krasch
  • Att klicka på en ToggleSplitButton gör att applikationen kraschar
  • WinUI 3 Desktop: Tomt DesktopWindowXamlSource-fönster som är synligt i aktivitetsfältet
  • WinUI 3 Desktop: DataGrid visas inte
  • WinUI 3 Desktop: Det går inte att släppa filer till Grid
  • WinUI 3 Desktop: ItemsRepeater kraschar i WinUI 3 Preview 2
  • AccessViolationException kastas vid uppdatering av bindningar
  • WinUI 3 Desktop: appen kraschar på scroll NavigationView
  • ItemsControl uppdateras inte när man dynamiskt lägger till eller tar bort objekt i dess ItemsSource-samling.
  • Kompileringsfel C2760 i App.xaml.gh om C++ Conformance Mode är aktiverat

Begränsningar och kända problem

Preview 4-versionen är helt enkelt en förhandsvisning med buggar, begränsningar och andra problem med scenarierna kring skrivbordsappar är särskilt nya.

Följande objekt är några av de kända problemen med WinUI 3 Preview 4.

Utvecklarverktyg

  • Endast C#- och C++/WinRT-appar stöds
  • Desktop-appar stöder .NET 5 och C# 9 och måste paketeras i en MSIX-app
  • UWP-appar stöder .NET Native och C# 7.3
  • Utvecklarverktyg och Intellisense kanske inte fungerar korrekt i Visual Studio version 16.8.
  • Inget XAML Designer-stöd
  • Nya C++/CX-appar stöds inte, men dina befintliga appar kommer att fortsätta att fungera (vänligen flytta till C++/WinRT så snart som möjligt)
  • Stöd för flera fönster i skrivbordsappar pågår, men ännu inte komplett och stabilt.
    • Vänligen rapportera en bugg på vår repo om du hittar nya problem eller regressioner med beteende i flera fönster.
  • Opaketerad skrivbordsdistribution stöds inte
  • När du kör en skrivbordsapp med F5, se till att du kör paketeringsprojektet. Om du trycker på F5 på appprojektet körs en oförpackad app, som WinUI 3 ännu inte stöder.

Saknade plattformsfunktioner

  • Xbox-stöd
  • HoloLens-stöd
  • Popup-fönster med fönster
    • Mer specifikt ShouldConstrainToRootBounds egenskapen fungerar alltid som om den är inställd på true, oavsett fastighetsvärde.
  • Färgstöd
  • Akryl
  • MediaElement och MediaPlayerElement
  • MapControl
  • RenderTargetBitmap för SwapChainPanel och icke-XAML-innehåll
  • SwapChainPanel stöder inte transparens
  • Global Reveal använder sig av reservbeteende, en solid borste
  • XAML Islands stöds inte i den här utgåvan
  • Tredje parts ekosystembibliotek kommer inte att fungera fullt ut
  • IME fungerar inte

Kända problem

  • Alt+F4 stänger inte skrivbordsappfönster.
  • På grund av förändringar med CoreWindow, kanske följande WinRT API:er inte längre fungerar med Desktop appar som förväntat:

    För mer information om hur du använder WinRT API:er i din WinUI 3 Desktop-app, se Windows Runtime API:er tillgängliga för skrivbordsappar.

  • Windows.UI.ViewManagement.UISettings.ColorValuesChanged Event stöds inte längre i skrivbordsappar. Detta kan orsaka problem om du använder det för att upptäcka ändringar i Windows-teman.
  • Den här versionen innehåller några experimentella API:er. Dessa har inte testats noggrant av teamet och kan ha okända problem. Snälla du skicka ett fel på vår repo om du stöter på några problem.
  • Tidigare skulle du ringa för att få en CompositionCapabilities-instans CompositionCapabilites.GetForCurrentView(). Men de funktioner som returnerades från detta samtal var inte beroende på utsikten. För att ta itu med och återspegla detta har vi tagit bort GetForCurrentView()-statiken i den här versionen, så nu kan du skapa en Sammansättningsförmåga objekt direkt.
  • För C# UWP-appar: WinUI 3-ramverket är en uppsättning WinRT-komponenter som kan användas från C++ (med C++/WinRT) eller C#. När du använder C# finns det två versioner av .NET, beroende på appmodell: när du använder WinUI 3 i en UWP-app använder du .NET Native; när du använder i en Desktop-app använder du .NET 5 (och C#/WinRT). När du använder C# för en WinUI 3-app i UWP, finns det några API-namnutrymmesskillnader jämfört med C# i en WinUI 3 Desktop-app eller en C# WinUI 2-app: vissa typer finns i en Microsoft namnutrymme snarare än en System namnutrymme. Till exempel snarare än INotifyPropertyChanged gränssnittet är i System.ComponentModel namnutrymme, det finns i Microsoft.UI.Xaml.Data namnutrymme. Detta gäller för:
    • INotifyPropertyChanged (och relaterade typer)
    • INotifyCollectionChanged
    • ICommand

    Smakämnen System namnområdesversioner finns fortfarande, men kan inte användas med WinUI 3. Detta betyder att ObservableCollection fungerar inte som det är i WinUI 3 C# UWP-appar. För en lösning, se SamlingarInterop exempel i Exempel på XAML Controls Gallery.

Vad kommer härnäst?

Utvecklare kan ta en titt på Microsofts detaljerade funktion färdplan för att se när specifika funktioner kommer att införas i WinUI 3.

Installera WinUI 3 Preview 4

WinUI 3 Preview 4 innehåller Visual Studio-projektmallar som hjälper dig komma igång med att bygga appar med ett WinUI-baserat användargränssnitt och ett NuGet-paket som innehåller WinUI-biblioteken. Följ dessa steg för att installera WinUI 3 Preview 4.

Windows Community Toolkit

Om du använder Windows Community Toolkit, ladda ner den senaste versionen.

Bortsett från begränsningar och kända problem, att bygga en app med WinUI-projekten liknar att bygga en UWP-app med XAML och WinUI 2.x. Därför är de flesta av vägledande dokumentation för UWP-appar och Windows.UI WinRT-namnområden i Windows SDK är tillämpliga.

För mer information om att komma igång med WinUI-projektmallarna, se följande artiklar:

En API-referensdokumentation för den här utgåvan kommer snart, men under tiden kan utvecklare titta på WinUI 3 API-referensdokumentation för Preview 3.

Om du skapade ett projekt med WinUI 3 Preview 3 kan du uppgradera ditt projekt till att använda Preview 4. Se WinUI GitHub-förråd för detaljerade instruktioner.

För att dra nytta av de senaste verktygsfunktionerna som lagts till i WinUI 3 Preview 4 som Hot Reload, Live Visual Tree och Live Property Explorer, måste du använda den senaste förhandsgranskningsversionen av Visual Studio med den senaste WinUI 3-förhandsvisningen och se till att aktivera WinUI-verktyg i Visual Studio Preview-funktioner, som beskrivs i instruktioner här.

se WinUI 3 Preview 4-gren av XAML Controls Gallery för en exempelapp som inkluderar alla WinUI 3 Preview 4 kontroller och funktioner.


Exempel på WinUI 3 Preview 4 XAML Controls Gallery-appen

Denna förhandsversion av WinUI 3 är avsedd för tidig utvärdering och för att samla in feedback från utvecklargemenskapen. Det borde INTE användas för produktionsappar. Microsoft kommer att fortsätta leverera förhandsversioner av WinUI 3 till 2021, följt av den första officiella, stödda versionen i mars 2021.

Vänligen använd WinUI GitHub repo för att ge feedback och logga förslag och problem.

Mer om ämnena: utvecklare, microsoft, winui 3 förhandsvisning 4