Dela via


Releasenotis för stabil kanal i Windows App SDK 1.4.

Den stabila kanalen innehåller versioner av Windows App SDK som stöds för användning av appar i produktionsmiljöer. Appar som använder den stabila versionen av Windows App SDK kan också publiceras till Microsoft Store.

Viktiga länkar:

Senaste stabila kanalversionen:

Nedladdningar för Windows App SDK

Anmärkning

Windows App SDK Visual Studio Extensions (VSIX) distribueras inte längre som en separat nedladdning. De är tillgängliga på Visual Studio Marketplace i Visual Studio.

Version 1.4.7 (1.4.240802001)

Det här är en serviceversion av Windows App SDK som innehåller kritiska felkorrigeringar för 1.4-versionen.

  • Åtgärdade ett problem där ItemsRepeater det inte skulle generera tillräckligt många objekt om det fanns i ett ShouldConstrainToRootBounds="false" popup-fönster som var längre eller bredare än huvudfönstret.
  • Åtgärdade en potentiell krasch vid nedstängning om en AnnotatedScrollBar etikettuppdatering väntade.

Version 1.4.6 (1.4.240512000)

Det här är en serviceversion av Windows App SDK som innehåller kritiska felkorrigeringar för 1.4-versionen.

  • En potentiell krasch har åtgärdats vid bearbetning av indata.
  • Åtgärdade ett problem där en dra-och-släpp-åtgärd som startades från en annan app kanske inte tillåter korrekta åtgärder för kopiering/flyttning/länkning.
  • Fixad information om WinUI-källservern för felsökning för att korrekt peka på GitHub-repot microsoft-ui-xaml.
  • Ett problem med korrigeringen för GitHub-problemet #8857 har åtgärdats för att korrekt sammanfoga ett bibliotek resources.pri i appens resources.pri.

Version 1.4.5 (1.4.240211001)

Det här är en serviceversion av Windows App SDK som innehåller kritiska felkorrigeringar för 1.4-versionen.

  • Ett problem som kunde hänga program när du klickade på en musknapp när du bläddrade med mushjulet har åtgärdats. Mer information finns i GitHub-problem #9233.
  • Ett problem med duplicerade tillgångar har åtgärdats vid hänvisning till en kedja med NuGet-paket. Mer information finns i GitHub-problem #8857.
  • BreadcrumbBar Flera problem har åtgärdats, bland annat en minnesläcka, en krasch när ellipsmenyn är tom och ellipsmenyn är felaktigt begränsad i fönstret.
  • Åtgärdade en risk för krasch under avstängning när grafikresurser frigörs.

Version 1.4.4 (1.4.231219000)

Det här är en serviceversion av Windows App SDK som innehåller kritiska felkorrigeringar för 1.4-versionen.

  • Ett säkerhetsproblem med WinUI 3-diagnostik har åtgärdats.
  • Ett indataproblem har åtgärdats där lösenordsrutan inte visade skärmtangentbordet när det aktiverades via touch. Mer information finns i GitHub-problem #8946.
  • Ett problem som gjorde att filstorleken Microsoft.UI.Xaml.Controls.dll ökade oväntat har åtgärdats.
  • CommandBarFlyout Ett problem som kan orsaka krascher vid fokusering har åtgärdats.
  • Windows App SDK-stöd har uppdaterats för .NET 8 RID-specifik tillgångshantering.
  • Ett problem har åtgärdats som gjorde att vissa växlingskedjor placerades eller sträcktes ut felaktigt.

Version 1.4.3 (1.4.231115000)

Det här är en serviceversion av Windows App SDK som innehåller kritiska felkorrigeringar för 1.4-versionen.

  • Åtgärdade ett problem där en meny kunde visas utan bakgrund under en kort tidsperiod.
  • En krasch som kan inträffa i specifika scenarier med flera övervakare har åtgärdats.
  • Ett problem där en snabbmeny kunde visas utanför skärmen har åtgärdats.
  • Ett problem med fönsterformat och maximerande beteende har åtgärdats. Mer information finns i GitHub-problem #8996.
  • Ett problem med öar där fokus oväntat kunde tas från en annan kontroll har åtgärdats.
  • Ett problem med tabbordning har åtgärdats på NavigationView.
  • Ett återgivningsproblem har åtgärdats där ett vitt fält kan vara synligt överst i namnlisten. Mer information finns i GitHub-problem #8947.
  • Olika prestandakorrigeringar.

Version 1.4.2 (1.4.231008000)

Det här är en serviceversion av Windows App SDK som innehåller kritiska felkorrigeringar för 1.4-versionen.

  • Åtgärdade ett kraschande problem i explorer.exe som orsakades av överdriven minnes- och objektallokering.
  • Åtgärdade ett interaktionsproblem med namnlisten som hindrade bakåtknappen från att fungera korrekt.
  • Ett problem som orsakade att en varning genererades för en källfil som inkluderades flera gånger har åtgärdats.
  • Ett problem som påverkade snabbmenyprestanda har åtgärdats.
  • Fixade ett .lnk genvägsproblem som gjorde att målet .exe alltid pekade på samma plats för paket i WindowsApps-mappen.
  • Ett DWriteCore-problem som påverkar korrekt återgivning av indic text i vissa teckensnitt har åtgärdats.
  • Ett problem har åtgärdats i en listvy som förhindrade korrekt tangentbordsnavigering till och från kapslade markerade objekt med Tab/Skift + Tab.
  • Åtgärdade ett problem som hindrade rullning av ComboBox-element med beröring efter att ComboBox expanderats en andra gång. Mer information finns i GitHub-problem #8831.
  • Ett problem har åtgärdats där Windows App SDK-paket inte innehöll WinUI:s lokaliserade resurser för vissa språk.
  • En inkonsekvens har åtgärdats mellan hur Utforskaren och XAML visar en användares föredragna språk.
  • Ett designproblem har åtgärdats i Utforskaren, som orsakar att en tunn linje visas under den aktiva fliken.
  • Åtgärdade ett problem där vissa ramverksbaserade tangentbordsacceleratorer inte var korrekt lokaliserade. Mer information finns i GitHub-problem #2023.
  • Åtgärdade ett problem med RepeatButton-kontroller som rullades upprepade gånger när de trycktes.
  • Fixade Windows App SDK-installationsprogrammet .exe så att det har korrekt versionsinformation för resurser.

Version 1.4.1 (1.4.230913002)

Det här är en serviceversion av Windows App SDK som innehåller kritiska felkorrigeringar för 1.4-versionen.

  • Åtgärdade prestandaproblem för att förbättra tiden till första bildrutan.
  • Åtgärdade ett problem där menyerna inte respekterade RequestedTheme. Det var till exempel möjligt att det här problemet ledde till vit text i en vit bakgrund. Mer information finns i GitHub-problem #8756.
  • Ett problem som gjorde att akrylbakgrunder ibland blev helt transparenta i vissa menyer har åtgärdats.
  • Åtgärdade ett problem där XAML ibland gjorde att Windows i onödan ommålade skrivbordsunderlägget.
  • Åtgärdat stöd för TabNavigation = Local och TabNavigation = Cycle för ListView och GridView, vilket nu möjliggör navigering mellan rubriker och objekt med TAB-tangenten utöver piltangenter.
  • Åtgärdade vissa störande undantag vid stängning av en knappbeskrivning. Mer information finns i GitHub-problem #8699.

Nya och uppdaterade funktioner och kända problem för version 1.4

I följande avsnitt beskrivs nya och uppdaterade funktioner och kända problem för version 1.4.

I en befintlig Windows App SDK 1.3-app kan du uppdatera Nuget-paketet till 1.4.230822000 (se avsnittet Uppdatera ett paket i Installera och hantera paket i Visual Studio med Hjälp av NuGet Package Manager).

För den uppdaterade körtiden och MSIX, se Senaste nedladdningar för Windows App SDK.

Anpassad rubrikfält + Sammanslagning av namnlist i AppWindow

Den anpassade namnlisten i WinUI 3 använder implementeringen av AppWindow-namnlisten, tillsammans med API:erna NonClientInputPointerSource bakom kulisserna i Windows App SDK 1.4. Därför fungerar båda implementeringarna av namnlisten på samma sätt med samma funktioner och begränsningar. Detta är helt bakåtkompatibelt i alla fall som stöds – alla appar med en egendefinierad rubriklist fungerar som tidigare. Men nu är det enklare för WinUI 3-utvecklare som kanske är nya för anpassade namnlister att förstå och använda dem genom att dra nytta av dessa nya funktioner:

  • Ett bättre standardscenario där utvecklaren inte definierar ett titlebar-element specifikt (ersätter återställningsrubrikfältet från WinUI 2)
  • Distinkta draområden i namnlisten, vilket gör att du kan skapa flera draområden och placera klickbara kontroller på valfri del av det icke-klientområdet (titelbarsområdet).
  • Applikationsomfattande områden som kan dras och placeras var som helst i appen eller göra hela appen flyttbar
  • Bättre temastöd som ersätter resursbaserade teman
    • Eftersom områden för dragning är transparenta, följer de apptemat hela tiden.
  • Mer anpassning: dölj knapparna min, max och close; placera systemikoner i namnlisten; eller låta olika regioner fungera som bildtextknappar som tar emot NCHITTEST-svar
  • Mer utvecklarfrihet som gör att du kan blanda och matcha med API:er för AppWindow-namnlisten, till exempel att använda WinUI 3-API:er på högre nivå för de flesta scenarier, men med AppWindow-API:er blandade för kontroll på lägre nivå

Uppdateringar av widgetar

Tre nya gränssnitt har lagts till för widgetprovidrar att implementera: IWidgetProvider2, IWidgetProviderAnalyticsoch IWidgetProviderErrors. IWidgetProvider2 tillåter leverantörer att svara på åtgärden Anpassa som anropas av användaren, vilket är identiskt med vad som är tillgängligt för widgetar från första part. Gränssnitten IWidgetProviderAnalytics och IWidgetProviderErrors används av leverantörer för att samla in telemetri för sina widgetar. Analys- och felhändelser om widgetar kommuniceras till respektive widgetprovidrar. Klasserna WidgetCustomizationRequestedArgs, WidgetAnalyticsInfoReportedArgsoch WidgetErrorInfoReportedArgs används för att kommunicera relevant information för att stödja nya funktioner.

XAML-öarna är inte längre experimentella

XAML Islands och den underliggande ContentIslands-plattformen är inte längre experimentella.

  • För närvarande testas endast XAML-öar för användning i C++-appar. Den här versionen innehåller inte några praktiska omslutningselement för användning i WPF eller WinForms.
  • DesktopWindowXamlSource och relaterade typer har lagts till i namnområdet Microsoft.UI.Xaml.Hosting för XAML Islands. XamlRoot.ContentIslandEnvironment lades till för att få åtkomst till den underliggande öinformationen för ett element.
  • Många nya typer har introducerats i namnområdet Microsoft.UI.Content och namnområdet Microsoft.UI.Input som underliggande stöd för XAML Islands eller för att använda den här ContentIslands-funktionen utan XAML.
  • En ny DragDropManager (och relaterade typer) har lagts till i namnområdet Microsoft.UI.Input.DragDrop för Island-scenarier.

ItemsView

Vi introducerar en ny listkontroll med namnet ItemsView och en motsvarande betongklass ItemContainer . ItemContainer är en lätt container med inbyggda valstatusar och visuella objekt, som enkelt kan omsluta önskat innehåll och användas tillsammans med ItemsView i ett scenario för samlingskontroll.

  • Den nya ItemsView kontrollen visar en datainsamling. ItemsViewliknar ListView kontrollerna och GridView men skapas med hjälp av komponenterna ItemsRepeater, ScrollViewItemContainer och ItemCollectionTransitionProvider . Det ger den unika möjligheten att ansluta anpassade Layout eller ItemCollectionTransitionProvider implementeringar. En annan viktig fördel är möjligheten att växla layout i farten samtidigt som objektval bevaras. Den inre ScrollView kontrollen erbjuder även funktioner som inte är tillgängliga iListView/GridView kontrollenScrollViewer, till exempel möjligheten att styra animeringen under programmatiska rullar.
    • Med en ny ItemTransitionProvider egenskap på ItemsRepeater (och den nya ItemsView kontrollen) kan du ange ett ItemCollectionTransitionProvider objekt för att styra övergångsanimeringar på den kontrollen. En CreateDefaultItemTransitionProvider-metod har också lagts till Layout, vilket gör det möjligt för ett layoutobjekt att tillhandahålla en reservövergång som följer med om du inte uttryckligen anger en för ItemsView-kontrollen.
    • En ny IndexBasedLayoutOrientation-egenskap på Layout där objektens layoutorientering, om sådan finns, baseras på deras index i källsamlingen. Standardvärdet är IndexBasedLayoutOrientation.None. Anpassade layouter anger den här egenskapen genom att anropa den nya (skyddade) SetIndexBasedLayoutOrientation metoden.
    • En ny VisibleRect egenskap på VirtualizingLayoutContext hämtar den synliga viewport-rektangeln inom den FrameworkElement som är associerad med Layout. Den skyddade virtuella VirtualizingLayoutContext.VisibleRectCore metoden kan åsidosättas för att ange det värde som ska returneras från VisibleRect egenskapen.
  • Den nya LinedFlowLayout klassen används vanligtvis för att lägga ut objekten i ItemsView samlingskontrollen. Det är särskilt användbart för att visa samling bilder. Det gör det genom att lägga ut dem från vänster till höger, och uppifrån och ned, i linjer med samma höjd. Bilderna fyller en vågrät linje och bryts sedan om till nästa rad. Bilder kan beskäras vid vänster och höger kanter för att passa in i en linje. De kan också expanderas vågrätt och beskäras i de övre och nedre kanterna för att fylla en linje när stretchingläget används.

Nya funktioner i Windows App SDK

  • En ny ThemeSettings klass som gör att Win32 WinRT-appar kan identifiera när systemets högkontrastinställning har ändrats, liknande UWP:s AccessibilitySettings-klass . Mer information finns i API-specifikationen för ThemeSettings på GitHub.
  • AccessKeyManager.EnterDisplayMode är en ny metod för att visa åtkomstnycklar för det nuvarande fokuserade elementet i en angiven rot. Åtkomstnycklar är i "visningsläge" när du visar ett nyckeltips för att anropa ett kommando, till exempel genom att trycka på Alt-tangenten i Paint för att visa vilka nycklar som motsvarar vilka kontroller. Med den här metoden kan du programmatiskt ange visningsläge.
  • Application.ResourceManagerRequested tillhandahåller en mekanism för att tillhandahålla en annan IResourceManager metod för att lösa resurs-URI:er för scenarier när standardvärdet ResourceManager inte fungerar. Mer information finns i API-specifikationen Application.ResourceManagerRequested på GitHub.
  • Versionen av WebView2 SDK uppdaterades från 1661.34 till 1823.32.
  • Popup/FlyoutBase.IsConstrainedToRootBounds = false stöds nu, vilket gör att ett popup-fönster/utfällbara objekt kan utökas utanför gränserna för det överordnade fönstret. En SystemBackdrop egenskap har lagts till i dessa typer för att stödja akryl i obegränsade popup-fönster. Menyer använder som standard akryl.
  • Closed, FrameworkClosedoch IsClosed har lagts till DesktopAcrylicController i och MicaController för att förbättra hanteringen under objekt-/trådavstängning.
  • DesktopAcrylicController.Kind kan nu ställas in för att välja mellan vissa standardakrylutseenden.
  • DispatcherQueue har några nya händelser och hjälpfunktioner för att underlätta mer välorganiserad avstängning och för appar som använder Öar för att enkelt köra en standardstödd händelseloop.
  • InputNonClientPointerSource i namnrymden Microsoft.UI.Input kan användas för scenarier med anpassade namnlister för att definiera regioner som inte är klientområden. Kod kan registrera motsvarande händelser som hover- och klickhändelser i dessa regioner.
  • AppWindow har några nya verktyg för att hämta och koppla samman med en DispatcherQueue.
  • Den nya TreeView.SelectionChanged händelsen gör att utvecklare kan svara när användaren eller bakomliggande kod ändrar uppsättningen med valda noder i TreeView kontrollen.
  • Den nya ScrollView kontrollen är ett nytt alternativ till ScrollViewer. Den här nya kontrollen är mycket anpassad i beteende och API med den befintliga ScrollViewer kontrollen, men baseras på InteractionTracker, har nya funktioner som animeringsdrivna vyändringar och är också utformad för att säkerställa fullständig funktionalitet för ItemsRepeater. Se En mer flexibel ScrollViewer · Problem #108 · microsoft/microsoft-ui-xaml (github.com) för mer information. Olika nya typer, inklusive ScrollPresenter, ingår i den övergripande ScrollView modellen.
  • Den nya AnnotatedScrollBar kontrollen utökar en vanlig rullningslists funktioner genom att ge ett enkelt sätt att navigera genom en stor samling objekt. Detta uppnås genom en klickbar räls med etiketter som fungerar som markörer. Det ger också en mer detaljerad förståelse av det rullningsbara innehållet genom att visa ett verktygstips när du hovrar över den klickbara skenan.

Kända problemområden

Felkorrigeringar

  • Åtgärdade ett problem där anropet av API:et Microsoft.Windows.AppLifecycle.AppInstance.Restart("") gjorde att opackade appar kraschade. Mer information finns i GitHub-problem #2792.
  • Ett kraschproblem med installationsprogrammet som introducerades i 1.4-experimental1 har åtgärdats. Mer information finns i GitHub-problem #3760.
  • Åtgärdade ett problem där textgenomstrykning inte togs bort korrekt i en TextBlock. Mer information finns i GitHub-problem #1093.
  • Ett problem har åtgärdats som orsakade felaktigt Skift + Tab-navigering i en panel med TabFocusNavigation inställt på "Once". Mer information finns i GitHub-problem #1363.
  • Ett problem i C++/WinRT som förhindrade {x:Bind} att fungera korrekt med en egenskap för en namngiven XAML-kontroll har åtgärdats. Mer information finns i GitHub-problem #2721.
  • Ett problem med Körningsåtkomstviolation har åtgärdats i WinUI Desktop-appar som orsakas av inställningen DebugSettings.EnableFrameRateCounter = true. Mer information finns i GitHub-problem #2835.
  • Ett problem åtgärdades där XamlTypeInfo.g.cpp inte inkluderade nödvändiga rubriker. Mer information finns i GitHub-problem #4907.
  • Åtgärdade en krasch som orsakades av samtidiga multi-touch- och musingångar. Mer information finns i GitHub-problem #7622.
  • Åtgärdade ett problem som hindrade ett aktivt WinUI 3-appfönster från att rulla när systeminställningen för att inaktivera rullning av inaktiva fönster på muspekaren var i kraft. Mer information finns i GitHub-problem #8764.
  • Problem med en krasch vid försök att subklassa MediaPlayerElement har åtgärdats.
  • Vissa krasch- och minnesläckageproblem har åtgärdats i TreeView.
  • Åtgärdade ett problem där applikationen kan låsa sig när man använder tangentbordet för att navigera i RadioButtons.
  • Åtgärdade en krasch som inträffade när man använde tangentbordet för att navigera i en PipsPager.
  • WebView2-innehåll har åtgärdats för att skala med hjälpmedelsinställningen "Textstorlek" i Windows-inställningar.
  • Åtgärdade en krasch som kunde inträffa när animeringar kördes när skärmen stängdes av.
  • Åtgärdade ett prestandaproblem som introducerades i 1.3 och som lade till en ~10% omkostnad vid den första layouten/renderingen.