Versionshinweise zum Vorschaukanal für das Windows App SDK
Wichtig
Der Vorschaukanal wird für die Verwendung in Produktionsumgebungen nicht unterstützt, und Apps, die die Vorschaureleases verwenden, können nicht im Microsoft Store veröffentlicht werden.
Der Vorschaukanal bietet eine Vorschau für das nächste stabile Release. Zwischen einem bestimmten Release des Preview-Kanals und dem nächsten Stable-Release gibt es möglicherweise bahnbrechende API-Änderungen. Vorschaukanalreleases enthalten keine experimentellen APIs.
Wichtige Links:
- Wenn Sie für eine vorhandene App ein Upgrade von einer älteren Version des Windows App SDK auf eine neuere Version ausführen möchten, finden Sie weitere Informationen unter Aktualisieren vorhandener Projekte auf die neueste Version von Windows App SDK.
- Eine Dokumentation zu Vorschaureleases finden Sie unter Installieren von Tools für Vorschau- und experimentelle Kanäle des Windows App SDK.
Version 1.5 Vorschau 1 (1.5.0-preview1)
Das ist das neueste Release des Vorschaukanals für Version 1.5.
In einer vorhandenen Windows App SDK 1.4-App (aus dem stabilen Kanal) können Sie Ihr NuGet-Paket auf 1.5.0-preview1 aktualisieren (weitere Informationen finden Sie im Abschnitt Aktualisieren eines Pakets in Installieren und Verwalten von Paketen in Visual Studio mit dem NuGet-Paket-Manager).
Die aktualisierten Runtime- und MSIX-Pakete finden Sie unter Downloads für das Windows App SDK.
XAML Islands Laufzeit- und Shutdown-Updates
- Es gibt einen Verhaltensunterschied zwischen WinAppSDK 1.4 und WinAppSDK 1.5 für xaml-inselnbasierte Apps, wenn das letzte XAML-Fenster in einem beliebigen Thread geschlossen wird.
- In WinAppSDK 1.4 verlässt die Xaml-Laufzeit die Ereignisschleife des Threads immer, wenn das letzte Xaml-Fenster in einem Thread geschlossen wird.
- In WinAppSDK 1.5:
- Wenn es sich bei Ihrer App um eine WinUI-Desktop-App handelt, ist das Standardverhalten immer noch dasselbe wie in WinAppSDK 1.4.
- Wenn Sie Xaml für die DesktopWindowXamlSource ("Xaml Islands")-API verwenden, besteht das Standardverhalten nun darin, dass Xaml die Ereignisschleife des Threads nicht automatisch verlässt.
- In beiden Modi können Sie dieses Verhalten ändern, indem Sie die Eigenschaft
Application.DispatcherShutdownMode
festlegen.
- Weitere Informationen finden Sie in der Dokumentation für die
Application.DispatcherShutdownMode
Eigenschaft, sofern verfügbar.
- Es gibt einen Verhaltensunterschied zwischen WinAppSDK 1.4 und WinAppSDK 1.5 für Xaml Islands-basierte Apps während der Lebensdauer der Xaml-Laufzeit:
- In WinAppSDK 1.4 wird die Xaml-Laufzeit in einem Thread heruntergefahren, wenn entweder alle
WindowsXamlManager
undDesktopWindowXamlSource
Objekte in einem bestimmten Thread geschlossen oder heruntergefahren werden oder dieDispatcherQueue
Ausführung in diesem Thread heruntergefahren wird (die Xaml-Laufzeit wird während derDispatcherQueue.FrameworkShutdownStarting
Phase heruntergefahren). - In WinAppSDK 1.5 wird die Xaml-Laufzeit nur dann auf einem Thread heruntergefahren, wenn der DispatcherQueue, der auf diesem Thread ausgeführt wird, heruntergefahren wird (die Xaml-Laufzeit wird während der
DispatcherQueue.FrameworkShutdownStarting
Phase heruntergefahren). - Weitere Informationen finden Sie in der Dokumentation zur
WindowsXamlManager
Klasse, sofern verfügbar.
- In WinAppSDK 1.4 wird die Xaml-Laufzeit in einem Thread heruntergefahren, wenn entweder alle
WinUI-Karten-Steuerelement
Die erste Version des WinUI-Steuerelements Maps
ist jetzt verfügbar! Dieses Steuerelement wird von WebView2 und Azure Karten unterstützt und stellt die folgenden Features bereit:
- Verschieben und Zoomen mit den Kartenschaltflächen oder per Toucheingabe.
- Ändern des Stils der Karte in Satelliten-, Gelände- oder Straßenansicht.
- Programmgesteuertes Hinzufügen von interagierbaren Pins mit vom Entwickler anpassbaren Symbolen zur Karte.
- Entwickleranpassung für die Ausrichtung der Karte beim ersten Laden.
- Kontrolle für Entwickler über das Ausblenden oder Anzeigen der Schaltflächen zum Schwenken, Zoomen und Kartenstilen.
Hinweis
Um das Maps
Steuerelement zu verwenden, benötigen Sie einen Azure Karten-Schlüssel. Informationen zum Erstellen des Schlüssels finden Sie auf der Dokumentationsseite von Azure Karten zum Erstellen einer Web-App.
Das Maps
Steuerelement ist völlig neu und wir freuen uns über Ihr Feedback, um ihre zukünftige Richtung zu bewerten!
Weitere neue Funktionen aus dem gesamten WinAppSDK
- Unterstützung für das PublishSingleFile-Bereitstellungsmodell hinzugefügt. Weitere Informationen zu PublishSingleFile finden Sie in der Dokumentation zur Bereitstellung einzelner Dateien.
Fehlerkorrekturen
- Es wurde ein Problem aus der Version 1.5-experimental2 behoben, bei der die Projektions-DLL nicht generiert wurde. Weitere Informationen finden Sie im GitHub-Issue #4152.
- Es wurde ein Problem behoben, bei dem die Schaltfläche mit den Auslassungspunkten im Popup "Textformatierung" der
RichEditBox
Liste der Aktionen nicht ordnungsgemäß angezeigt wurde. Weitere Informationen finden Sie im GitHub-Issue #9140. - Es wurde ein Problem behoben, bei dem die
ListView
Tastenkombinationen nicht ordnungsgemäß behandelt wurden. Weitere Informationen finden Sie im GitHub-Issue #8063. - Ein Zugriffsverletzungsproblem mit der Verwendung
AccessKey
zum Schließen eines Fensters wurde behoben. Weitere Informationen finden Sie im GitHub-Issue #8648. - Es wurde ein Problem behoben, das sich auf die Textausrichtung in einem
MenuFlyoutItem
innerhalb einesMenuBar
auswirkt. Weitere Informationen finden Sie im GitHub-Issue #8755. - Es wurde ein Problem behoben, bei dem hervorgehobener Text nach einem Rechtsklick nicht hervorgehoben blieb. Weitere Informationen finden Sie im GitHub-Issue #1801.
- Es wurde ein Problem behoben, das dazu führte, dass inaktive Fenster beim Schließen der App abstürzten. Weitere Informationen finden Sie im GitHub-Issue #8913.
- Es wurde ein Problem behoben, das dazu führen konnte, dass Anwendungen hängen blieben, wenn mit der mittleren Maustaste gescrollt und unmittelbar danach mit der linken Maustaste geklickt wurde. Weitere Informationen finden Sie im GitHub-Issue #9233.
Neue APIs in 1.5.0-preview1
Version 1.5-preview1 enthält gegenüber dem stabilen Release 1.4 die folgenden neuen APIs:
Microsoft.Graphics.DirectX
DirectXPixelFormat
A4B4G4R4
Microsoft.UI.Input
FocusNavigationReason
FocusNavigationRequest
FocusNavigationRequestEventArgs
FocusNavigationResult
InputFocusController
DepartFocus
NavigateFocusRequested
InputFocusNavigationHost
Microsoft.UI.Xaml
Application
DispatcherShutdownMode
DebugSettings
LayoutCycleDebugBreakLevel
LayoutCycleTracingLevel
DispatcherShutdownMode
LayoutCycleDebugBreakLevel
LayoutCycleTracingLevel
Microsoft.UI.Xaml.Controls
MapControl
MapControlMapServiceErrorOccurredEventArgs
MapElement
MapElementClickEventArgs
MapElementsLayer
MapIcon
MapLayer
SelectorBar
SelectorBarItem
SelectorBarSelectionChangedEventArgs
WebView2
EnsureCoreWebView2Async
EnsureCoreWebView2Async
Microsoft.UI.Xaml.Hosting
WindowsXamlManager
GetForCurrentThread
XamlShutdownCompletedOnThread
XamlShutdownCompletedOnThreadEventArgs
Microsoft.Web.WebView2.Core
CoreWebView2
FrameId
CoreWebView2AcceleratorKeyPressedEventArgs
IsBrowserAcceleratorKeyEnabled
CoreWebView2BrowserExtension
CoreWebView2BrowsingDataKinds
ServiceWorkers
CoreWebView2CustomSchemeRegistration
CoreWebView2CustomSchemeRegistration (String)
AllowedOrigins
SchemeName
CoreWebView2Environment
GetProcessExtendedInfosAsync
CoreWebView2EnvironmentOptions
AreBrowserExtensionsEnabled
CustomSchemeRegistrations
CoreWebView2Frame
FrameId
CoreWebView2FrameInfo
FrameId
FrameKind
ParentFrameInfo
CoreWebView2FrameKind
CoreWebView2MouseEventKind
NonClientRightButtonDown
NonClientRightButtonUp
CoreWebView2NavigationKind
CoreWebView2NavigationStartingEventArgs
NavigationKind
CoreWebView2NewWindowRequestedEventArgs
OriginalSourceFrameInfo
CoreWebView2ProcessExtendedInfo
CoreWebView2Profile
AddBrowserExtensionAsync
Delete
Deleted
Microsoft.Windows.Management.Deployment
AddPackageOptions
EnsureReadyOptions
PackageDeploymentContract
PackageDeploymentManager
PackageDeploymentProgress
PackageDeploymentProgressStatus
PackageDeploymentResult
PackageDeploymentStatus
PackageRuntimeManager
PackageSet
PackageSetItem
PackageSetItemRuntimeDisposition
PackageSetRuntimeDisposition
PackageVolume
ProvisionPackageOptions
RegisterPackageOptions
RemovePackageOptions
StagePackageOptions
StubPackageOption
Microsoft.Windows.Widgets.Feeds.Providers
CustomQueryParametersRequestedArgs
CustomQueryParametersUpdateOptions
FeedDisabledArgs
FeedEnabledArgs
FeedManager
FeedProviderDisabledArgs
FeedProviderEnabledArgs
FeedProviderInfo
IFeedManager
IFeedProvider
Version 1.4 Vorschau 2 (1.4.0-preview2)
Das ist das neueste Release des Vorschaukanals für Version 1.4.
In einer vorhandenen Windows App SDK 1.3-App (aus dem stabilen Kanal) können Sie Ihr NuGet-Paket auf 1.4.0-preview2 aktualisieren (weitere Informationen finden Sie im Abschnitt Aktualisieren eines Pakets in Installieren und Verwalten von Paketen in Visual Studio mit dem NuGet-Paket-Manager).
Die aktualisierten Runtime- und MSIX-Pakete finden Sie unter Downloads für das Windows App SDK.
XAML-Inseln nicht mehr nur experimentell
XAML-Inseln und die zugrunde liegende ContentIslands-Plattform sind nicht mehr nur experimentell.
- Derzeit werden XAML-Inseln nur für die Verwendung in C++-Apps getestet. Diese Version enthält keine praktischen Wrapperelemente für die Verwendung in WPF oder WinForms.
DesktopWindowXamlSource
und verwandte Typen wurden im Microsoft.UI.Xaml.Hosting-Namespace für XAML-Inseln hinzugefügt.XamlRoot.ContentIslandEnvironment
wurde hinzugefügt, um den Zugriff auf die zugrunde liegenden Inselinformationen für ein Element zu erleichtern.- Viele neue Typen wurden im Microsoft.UI.Content-Namespace und im Microsoft.UI.Input-Namespace als zugrunde liegende Unterstützung für XAML-Inseln oder für die Verwendung dieser ContentIslands-Funktionalität ohne XAML eingeführt.
- Im Namespace „Microsoft.UI.Input.DragDrop“ für Inselszenarien wurde ein neuer
DragDropManager
(plus verwandter Typen) hinzugefügt.
Aktualisierungen von ItemsView
Die neue Klasse ItemsView
, die in Version 1.4-preview1 eingeführt wurde, wurde mit neuen Eigenschaften und einer neuen unterstützenden Klasse in erheblichem Umfang aktualisiert.
- Das neue Steuerelement
ItemsView
zeigt eine Datensammlung an.ItemsView
ähnelt den SteuerelementenListView
undGridView
, wird jedoch mit den KomponentenItemsRepeater
,ScrollView
,ItemContainer
undItemCollectionTransitionProvider
erstellt. Es bietet die einzigartige Möglichkeit, benutzerdefinierteLayout
- oderItemCollectionTransitionProvider
-Implementierungen einzubinden. Ein weiterer wichtiger Vorteil ist die Möglichkeit, das Layout während der Verwendung zu wechseln und gleichzeitig die Auswahl von Elementen beizubehalten. Das innereScrollView
-Steuerelement bietet außerdem Funktionen, die in dem inListView
/GridView
integriertenScrollViewer
-Steuerelement nicht verfügbar sind, wie z. B. die Möglichkeit, die Animation bei programmgesteuerten Bildläufen zu steuern.- Mit der neuen
ItemTransitionProvider
-Eigenschaft desItemsRepeater
(und dem neuen SteuerelementItemsView
) können Sie einItemCollectionTransitionProvider
-Objekt zum Steuern von Übergangsanimationen für dieses Steuerelement angeben. Außerdem wurde eineCreateDefaultItemTransitionProvider
-Methode zuLayout
hinzugefügt, die es einem Layoutobjekt ermöglicht, einen integrierten Fallbackübergang bereitzustellen, wenn Sie für dasItemsView
-Steuerelement nicht explizit einen angeben. - Eine neue
IndexBasedLayoutOrientation
-Eigenschaft fürLayout
, bei der die Layout-Ausrichtung von Objekten, falls vorhanden, auf ihrem Index in der Quellensammlung basiert. Der Standardwert istIndexBasedLayoutOrientation.None
. Benutzerdefinierte Layouts legen diese Eigenschaft durch Aufrufen der neuen (geschützten)SetIndexBasedLayoutOrientation
-Methode fest. - Eine neue
VisibleRect
-Eigenschaft aufVirtualizingLayoutContext
zum Abrufen des sichtbaren Viewport-Rechtecks innerhalb desFrameworkElement
, das demLayout
zugeordnet ist. Die geschützte virtuelle MethodeVirtualizingLayoutContext.VisibleRectCore
kann überschrieben werden, um den Wert bereitzustellen, der von der EigenschaftVisibleRect
zurückgegeben wird.
- Mit der neuen
- Die neue Klasse
LinedFlowLayout
wird in der Regel verwendet, um die Elemente des AuflistungssteuerelementsItemsView
zu gestalten. Sie ist besonders nützlich, eine Sammlung von Bildern anzuzeigen. Dabei werden die Elemente von links nach rechts und von oben nach unten in gleich hohen Zeilen angeordnet. Die Bilder füllen eine horizontale Zeile und gehen dann in die nächste Zeile über. Bilder können am linken und rechten Rand abgeschnitten werden, damit sie in eine Zeile passen. Sie können auch horizontal erweitert und am oberen und unteren Rand abgeschnitten werden, um eine Zeile zu füllen, wenn der Dehnungsmodus verwendet wird.
Neue Funktionen und Aktualisierungen aus dem gesamten WinAppSDK
Popup/FlyoutBase.IsConstrainedToRootBounds = false
wird jetzt unterstützt, sodass ein Popup-/Flyout außerhalb der Grenzen des übergeordneten Fensters erweitert werden kann. Zu diesen Typen wurde eineSystemBackdrop
-Eigenschaft hinzugefügt, um Acryl in diesen nicht eingeschränkten Popups zu unterstützen. Diese Funktion wird in Menüs standardmäßig verwendet, um Acryl zu verwenden.Closed
,FrameworkClosed
undIsClosed
wurden zuDesktopAcrylicController
undMicaController
hinzugefügt, um die Abwicklung des Herunterfahrens von Objekten/Threads zu verbessern.DesktopAcrylicController.Kind
kann jetzt so eingestellt werden, dass Sie zwischen einigen Standard-Acryl-Darstellungen wählen können.DispatcherQueue
verfügt über einige neue Ereignisse und Hilfsprogramme, um das Herunterfahren besser zu koordinieren und für Anwendungen, die Inseln verwenden, einfach eine standardmäßig unterstützte Ereignisschleife auszuführen.- Im Namespace „Microsoft.UI.Input“ kann
InputNonClientPointerSource
für benutzerdefinierte Titelleistenszenarien verwendet werden, um Bereiche außerhalb des Clientbereichs zu definieren. Code kann für entsprechende Ereignisse wie Zeigen und Klicken auf Ereignisse in diesen Regionen registriert werden. AppWindow
hat einige neue Hilfsprogramme, um eineDispatcherQueue
zu erhalten und sich mit ihr zu verknüpfen.- Mit dem neuen
TreeView.SelectionChanged
-Ereignis können Entwickler*innen reagieren, wenn Benutzer*innen oder der Code-Behind die Menge der ausgewählten Knoten imTreeView
-Steuerelement ändern. - Das neue
ScrollView
-Steuerelement bietet eine neue Alternative zuScrollViewer
. Dieses neue Steuerelement ist stark im Verhalten und der API an dem vorhandenenScrollViewer
-Steuerelement ausgerichtet. Es basiert jedoch aufInteractionTracker
, hat neue Features wie animationsgesteuerte Ansichtsänderungen und ist auch darauf ausgelegt, die volle Funktionalität vonItemsRepeater
sicherzustellen. Weitere Informationen finden Sie unter A more flexible ScrollViewer · Issue #108 · microsoft/microsoft-ui-xaml (github.com). Verschiedene neue Typen, einschließlichScrollPresenter
, sind Teil des Gesamtmodells vonScrollView
. - Das neue
AnnotatedScrollBar
-Steuerelement erweitert die Funktionalität einer regulären Bildlaufleiste, indem es eine einfache Möglichkeit zum Navigieren durch eine große Sammlung von Elementen ermöglicht. Dies wird durch eine klickbare Leiste mit Bezeichnungen erreicht, die als Markierungen fungieren. Es ermöglicht auch ein genaueres Verständnis des bildlauffähigen Inhalts, indem eine QuickInfo angezeigt wird, wenn Sie auf die klickbare Leiste zeigen.
Neue APIs in 1.4.0-preview2
Version 1.4-preview2 enthält gegenüber dem vorherigen Release von 1.4-Preview1 die folgenden neuen APIs:
Microsoft.UI
ClosableNotifierHandler
IClosableNotifier
Microsoft.UI.Composition.SystemBackdrops
DesktopAcrylicController
Closed
FrameworkClosed
IsClosed
Kind
DesktopAcrylicKind
MicaController
Closed
FrameworkClosed
IsClosed
Microsoft.UI.Content
ContentCoordinateConverter
ContentCoordinateRoundingMode
ContentDeferral
ContentEnvironmentSettingChangedEventArgs
ContentEnvironmentStateChangedEventArgs
ContentIsland
ContentIslandAutomationProviderRequestedEventArgs
ContentIslandEnvironment
ContentIslandStateChangedEventArgs
ContentLayoutDirection
ContentSite
ContentSiteEnvironment
ContentSiteEnvironmentView
ContentSiteRequestedStateChangedEventArgs
ContentSiteView
ContentSizePolicy
DesktopChildSiteBridge
DesktopSiteBridge
IContentSiteBridge
Microsoft.UI.Dispatching
DispatcherExitDeferral
DispatcherQueue
EnqueueEventLoopExit
EnsureSystemDispatcherQueue
FrameworkShutdownCompleted
FrameworkShutdownStarting
RunEventLoop
RunEventLoop
DispatcherQueueController
ShutdownQueue
DispatcherRunOptions
Microsoft.UI.Input
CharacterReceivedEventArgs
ContextMenuKeyEventArgs
FocusChangedEventArgs
InputActivationListener
GetForIsland
InputFocusChangedEventArgs
InputFocusController
InputKeyboardSource
CharacterReceived
ContextMenuKey
GetCurrentKeyState
GetForIsland
GetKeyState
KeyDown
KeyUp
SystemKeyDown
SystemKeyUp
InputNonClientPointerSource
InputPointerSource
GetForIsland
InputPreTranslateKeyboardSource
KeyEventArgs
NonClientCaptionTappedEventArgs
NonClientPointerEventArgs
NonClientRegionKind
NonClientRegionsChangedEventArgs
PhysicalKeyStatus
VirtualKeyStates
Microsoft.UI.Input.DragDrop
DragDropManager
DragDropModifiers
DragInfo
DragOperation
DragUIContentMode
DragUIOverride
DropOperationTargetRequestedEventArgs
IDropOperationTarget
Microsoft.UI.Windowing
AppWindow
AssociateWithDispatcherQueue
Create
DispatcherQueue
Microsoft.UI.Xaml
XamlRoot
ContentIslandEnvironment
Microsoft.UI.Xaml.Automation.Peers
ItemsViewAutomationPeer
Microsoft.UI.Xaml.Controls
AnnotatedScrollBar
AnnotatedScrollBarDetailLabelRequestedEventArgs
AnnotatedScrollBarLabel
AnnotatedScrollBarScrollingEventArgs
AnnotatedScrollBarScrollingEventKind
IndexBasedLayoutOrientation
ItemCollectionTransition
ItemCollectionTransitionCompletedEventArgs
ItemCollectionTransitionOperation
ItemCollectionTransitionProgress
ItemCollectionTransitionProvider
ItemCollectionTransitionTriggers
ItemsRepeater
ItemTransitionProvider
ItemTransitionProviderProperty
ItemsView
ItemsViewItemInvokedEventArgs
ItemsViewSelectionChangedEventArgs
ItemsViewSelectionMode
Layout
CreateDefaultItemTransitionProvider
IndexBasedLayoutOrientation
SetIndexBasedLayoutOrientation
LinedFlowLayout
LinedFlowLayoutItemCollectionTransitionProvider
LinedFlowLayoutItemsInfoRequestedEventArgs
LinedFlowLayoutItemsJustification
LinedFlowLayoutItemsStretch
ScrollingAnchorRequestedEventArgs
ScrollingAnimationMode
ScrollingBringingIntoViewEventArgs
ScrollingChainMode
ScrollingContentOrientation
ScrollingInputKinds
ScrollingInteractionState
ScrollingRailMode
ScrollingScrollAnimationStartingEventArgs
ScrollingScrollBarVisibility
ScrollingScrollCompletedEventArgs
ScrollingScrollMode
ScrollingScrollOptions
ScrollingSnapPointsMode
ScrollingZoomAnimationStartingEventArgs
ScrollingZoomCompletedEventArgs
ScrollingZoomMode
ScrollingZoomOptions
ScrollView
TreeView
SelectionChanged
TreeViewSelectionChangedEventArgs
VirtualizingLayoutContext
VisibleRect
VisibleRectCore
Microsoft.UI.Xaml.Controls.Primitives
FlyoutBase
SystemBackdrop
SystemBackdropProperty
IScrollController
IScrollControllerPanningInfo
Popup
SystemBackdrop
SystemBackdropProperty
RepeatedScrollSnapPoint
RepeatedZoomSnapPoint
ScrollControllerAddScrollVelocityRequestedEventArgs
ScrollControllerPanRequestedEventArgs
ScrollControllerScrollByRequestedEventArgs
ScrollControllerScrollToRequestedEventArgs
ScrollPresenter
ScrollSnapPoint
ScrollSnapPointBase
ScrollSnapPointsAlignment
SnapPointBase
ZoomSnapPoint
ZoomSnapPointBase
Microsoft.UI.Xaml.Hosting
DesktopWindowXamlSource
DesktopWindowXamlSourceGotFocusEventArgs
DesktopWindowXamlSourceTakeFocusRequestedEventArgs
WindowsXamlManager
XamlSourceFocusNavigationReason
XamlSourceFocusNavigationRequest
XamlSourceFocusNavigationResult
Version 1.4 Vorschau 1 (1.4.0-preview1)
Das ist das neueste Release des Vorschaukanals für Version 1.4.
In einer vorhandenen Windows App SDK 1.3-App (aus dem stabilen Kanal) können Sie Ihr NuGet-Paket auf 1.4.0-preview1 aktualisieren (weitere Informationen finden Sie im Abschnitt Aktualisieren eines Pakets in Installieren und Verwalten von Paketen in Visual Studio mit dem NuGet-Paket-Manager).
Die aktualisierten Runtime- und MSIX-Pakete finden Sie unter Downloads für das Windows App SDK.
Widgets-Updates
Es wurden drei neue Schnittstellen für Widgetanbieter hinzugefügt: IWidgetProvider2
, IWidgetProviderAnalytics
, und IWidgetProviderErrors
. Mit IWidgetProvider2
können Anbieter auf die vom Benutzer aufgerufene Aktion Anpassen reagieren. Dies ist identisch mit der Funktionalität, die für eigene Widgets verfügbar ist. Mit den Schnittstellen IWidgetProviderAnalytics
und IWidgetProviderErrors
können Anbieter Telemetriedaten für ihre Widgets sammeln. Die jeweiligen Widgetanbieter erhalten so Analyse- und Fehlerereignisse von Widgets. Die Klassen WidgetCustomizationRequestedArgs
, WidgetAnalyticsInfoReportedArgs
und WidgetErrorInfoReportedArgs
werden verwendet, um relevante Informationen zur Unterstützung neuer Funktionen zu vermitteln.
Neue Funktionen aus dem gesamten WinAppSDK
- Eine neue
ThemeSettings
-Klasse, mit der Win32 WinRT-Apps erkennen können, dass sich die Einstellung des Systems für hohen Kontrast geändert hat, ähnlich der UWP-Klasse AccessibilitySettings. Weitere Informationen finden Sie in der ThemeSettings-API-Spezifikation auf GitHub. Popup/FlyoutBase.ShouldConstrainToRootBounds
wird jetzt unterstützt, damit QuickInfos, Menüs und andere Popups außerhalb der Grenzen des Hauptfensters erweitert werden können. Acrylic oder andere SystemBackdrops in einem Popup/Flyout werden von Vorschau 1 noch nicht vollständig unterstützt. Weitere APIs und Implementierungen hierfür werden im nächsten Release 1.4 enthalten sein.AccessKeyManager.EnterDisplayMode
ist eine neue Methode zum Anzeigen von Tastenkombinationen für das aktuelle fokussierte Element eines bereitgestellten Stamms. Tastenkombinationen befinden sich im „Anzeigemodus“, wenn eine Tastenkombination zum Aufrufen eines Befehls angezeigt wird, z. B. wenn Sie in Paint die Alt-Taste drücken, um anzuzeigen, welche Tasten welchen Steuerelementen entsprechen. Diese Methode ermöglicht die programmgesteuerte Anzeige des Anzeigemodus.Application.ResourceManagerRequested
bietet einen Mechanismus zur Bereitstellung eines anderenIResourceManager
zur Auflösung von Ressourcen-URIs für Szenarien, in denen der Standard-ResourceManager
nicht funktioniert. Weitere Informationen finden Sie in der Application.ResourceManagerRequested-API-Spezifikation auf GitHub.- Wir führen ein neues Listensteuerelement ein, das als
ItemsView
bezeichnet wird und eine entsprechende konkreteItemContainer
-Klasse.ItemContainer
ist ein einfacher Container mit integrierten Auswahlzuständen und visuellen Elementen, der die gewünschten Inhalte problemlos umschließen und zusammen mitItemsView
für ein Szenario mit Sammlungssteuerung verwendet werden kann.ItemsView
ist in Vorschau 1 weiterhin als experimentell gekennzeichnet, wird aber im nächsten Release 1.4 enthalten sein. - Die Version des WebView2 SDK wurde von 1661.34 auf 1823.32 aktualisiert.
Neue APIs in 1.4.0-preview1
Version 1.4-preview1 enthält gegenüber dem stabilen Release 1.3 die folgenden neuen APIs:
Microsoft.UI.System
ThemeSettings
Microsoft.UI.Xaml
Application
ResourceManagerRequested
ResourceManagerRequestedEventArgs
Microsoft.UI.Xaml.Automation.Peers
ItemContainerAutomationPeer
Microsoft.UI.Xaml.Controls
ItemContainer
Microsoft.UI.Xaml.Controls.Primitives
CommandBarFlyoutCommandBar
SystemBackdrop
SystemBackdropProperty
Microsoft.UI.Xaml.Input
AccessKeyManager
EnterDisplayMode
Microsoft.Web.WebView2.Core
CoreWebView2
LaunchingExternalUriScheme
MemoryUsageTargetLevel
CoreWebView2File
CoreWebView2LaunchingExternalUriSchemeEventArgs
CoreWebView2MemoryUsageTargetLevel
CoreWebView2PermissionKind
WindowManagement
CoreWebView2Profile
CookieManager
IsGeneralAutofillEnabled
IsPasswordAutosaveEnabled
CoreWebView2Settings
IsReputationCheckingRequired
CoreWebView2WebMessageReceivedEventArgs
AdditionalObjects
Microsoft.Windows.Widgets.Providers
IWidgetProvider2
IWidgetProviderAnalytics
IWidgetProviderErrors
WidgetAnalyticsInfoReportedArgs
WidgetCustomizationRequestedArgs
WidgetErrorInfoReportedArgs
Version 1.3 Vorschau 1 (1.3.0-preview1)
Das ist das neueste Release des Vorschaukanals für Version 1.3. Dieses Release enthält die Vorschau für neue Features in WinAppSDK und mehrere Programmfehlerbehebungen bezüglich Leistung, Sicherheit, Bedienungshilfen und Zuverlässigkeit.
In einer vorhandenen Windows App SDK 1.2-App (aus dem stabilen Kanal) können Sie Ihr NuGet-Paket auf 1.3.0-preview1 aktualisieren (weitere Informationen finden Sie im Abschnitt Aktualisieren eines Pakets in Installieren und Verwalten von Paketen in Visual Studio mit dem NuGet-Paket-Manager).
Die aktualisierten Runtime- und MSIX-Pakete finden Sie unter Downloads für das Windows App SDK.
XAML-Hintergrund-APIs
Mit in das XAML-Fenster integrierten Eigenschaften können Mica- und Background Acrylic-Hintergründe jetzt einfacher in Ihrer WinUI 3-App verwendet werden. Weitere Informationen zur Window.SystemBackdrop-Eigenschaft finden Sie in der XAML-Hintergrund-API-Spezifikation auf GitHub.
public MainWindow()
{
this.InitializeComponent();
this.SystemBackdrop = new MicaBackdrop();
}
Window.AppWindow
Durch Ersetzen mehrerer Zeilen mit Codebausteinen können Sie AppWindow-APIs jetzt über direkt aus einem FensterWindow.AppWindow
verwenden. Weitere Hintergrund- und Nutzungsinformationen finden Sie in der Windows.AppWindow-API-Spezifikation auf GitHub.
Neue Features aus WinAppSDK
ApplicationModel.DynamicDependency
:PackageDependency.PackageGraphRevisionId
ersetzt die veraltete MddGetGenerationId-Funktion.- Umgebungs-Manager:
EnvironmentManager.AreChangesTracked
informiert Sie darüber, ob Änderungen am Umgebungs-Manager in Ihrer Anwendung nachverfolgt werden können. Weitere Informationen finden Sie in der Spezifikation Umgebungs-Manager API auf GitHub. - MRT Core: Ein neues Ereignis
Application.ResourceManagerInitializing
ermöglicht Ihrer App die Bereitstellung einer eigenen Implementierung derIResourceManager
Schnittstelle und bietet Ihnen Zugriff auf den ResourceManager, den WinUI zum Auflösen von Ressourcen-URIs verwendet. Weitere Informationen finden Sie in der Spezifikation der IResourceManager API auf GitHub. - Mit dem neuesten experimentellen VSIX-Paket können Sie Ihre App jetzt über das Visual Studio-Menü anstatt in Ihrer Projektdatei von der nicht gepackten in die gepackte Version konvertieren.
- Ein neues Ereignis,
DebugSettings.XamlResourceReferenceFailed
wird jetzt ausgelöst, wenn ein referenzierter Static-/ThemeResource-Lookup nicht aufgelöst werden kann. Dieses Ereignis gibt Zugriff auf eine Ablaufverfolgung, die angibt, wo das Framework nach diesem Schlüssel gesucht hat, damit Sie Fehler bei Static- und ThemeResource-Lookups besser debuggen können. Weitere Informationen finden Sie in der API-Spezifikation und in den Issues 4972, 2350 und 6073 auf GitHub. - Bereitstellung: Zum Verwalten und Reparieren der Windows-App-Runtime steht jetzt
DeploymentRepairOptions
als Teil vonDeploymentManager
zur Verfügung. Weitere Informationen finden Sie im Abschnitt zur Reparatur in der Spezifikation der Bereitstellungs-API auf GitHub.
Bekannte Probleme
- Das Pivot-Steuerelement verursacht einen Laufzeitabsturz mit einem XAML-Parsingfehler. Weitere Informationen finden Sie im Issue 8160 auf GitHub.
- Wenn das DatePicker- oder TimePicker-Flyout geöffnet wird, stürzt die App ab.
- Die in den 1.3-Releases eingeführten
WindowsAppRuntime.ReleaseInfo
- undWindowsAppRuntime.RuntimeInfo
-APIs werden noch nicht unterstützt, da sie einen kritischen Bug enthalten.
Version 1.2 Vorschau 2 (1.2.0-preview2)
Das ist das neueste Release des Vorschaukanals für Version 1.2.
In einer vorhandenen Windows App SDK 1.1-App (aus dem stabilen Kanal) können Sie Ihr NuGet-Paket auf 1.2.0-preview2 aktualisieren (weitere Informationen finden Sie im Abschnitt Aktualisieren eines Pakets in Installieren und Verwalten von Paketen in Visual Studio mit dem NuGet-Paket-Manager).
Die aktualisierten Runtime- und MSIX-Pakete finden Sie unter Downloads für das Windows App SDK.
Wichtig
Visual Studio 2019 und .NET 5 werden für das Kompilieren von C#-Apps nicht mehr unterstützt (siehe Windows App SDK 1.2 moving to C# WinRT 2.0). Sie benötigen Visual Studio 2022 und eine der folgenden .NET SDK-Versionen: 6.0.401 (oder höher), 6.0.304, 6.0.109.
Zum Aktualisieren Ihrer .NET SDK-Version installieren Sie die neueste Version von Visual Studio 2022, oder besuchen Sie die Download-Website für .NET. Wenn Sie Ihr NuGet-Paket ohne die erforderliche .NET SDK-Version aktualisieren, wird ein Fehler wie dieser angezeigt: Diese Version von WindowsAppSDK erfordert .NET 6 oder höher und WinRT.Runtime.dll Version 2.0 oder höher. Um das Projekt von .NET 5.0 auf .NET 6.0 zu aktualisieren, öffnen Sie die Projektdatei, und ändern Sie „TargetFramework“ zu net6.0
und „Zielbetriebssystemversion“ in den entsprechenden Wert (z. B. net6.0-windows10.0.19041.0
).
Widgets von Drittanbietern in Windows
Das Widgets-Board wurde erstmals in Windows 11 eingeführt und war auf die Anzeige von Erstanbieter-Widgets beschränkt. Widgets sind kleine UI-Container, die Text und Bilder auf dem Widgets-Board anzeigen, und sind mit einer auf dem Gerät installierten App verknüpft. Mit dem Windows App SDK können Drittanbieterentwickler*innen jetzt Widgets für Ihre gepackten Win32-Apps erstellen und diese lokal auf dem Widgets-Board unter Windows 11 testen.
Weitere Informationen zu Widgets finden Sie in der Übersicht über Widgets.
Zum Einstieg in die Entwicklung von Widgets für Ihre App finden Sie in der Dokumentation zur Entwicklung durch Widgetanbieter und den Grundlagen des Widgetdesigns Informationen zu Voraussetzungen sowie Anleitungen und Best Practices.
Zu den Voraussetzungen für dieses Release gehören:
- Der Entwicklermodus muss auf dem Entwicklungscomputer aktiviert sein.
- Auf dem Entwicklungscomputer wird eine Windows-Version aus dem Dev-Kanal des Windows Insider Program (WIP) mit Widgets-Board-Version 521.20060.1205.0 oder höher ausgeführt.
Bekannte Einschränkungen beim Entwickeln von Widgets
- Widgets von Drittanbietern können nur lokal auf Geräten getestet werden, die für diese Vorschauversion bei WIP registriert sind. In Windows App SDK 1.2.0 können Benutzer von Einzelhandelsversionen von Windows über die vom Microsoft Store ausgelieferten Versionen Ihrer App mit dem Erwerb von 3P-Widgets beginnen.
- Widgets können nur für gepackte Win32-Apps erstellt werden. Die Unterstützung für Widgets für progressive Web-Apps (PWA) ist im Rahmen von Microsoft Edge 108 geplant.
Kürzen für Apps, die mit .NET entwickelt wurden
.NET-Entwickler können WinAppSDK-Apps jetzt in gekürzter Form veröffentlichen. Mit CsWinRT 2.0 können die in WinAppSDK verteilten C#/WinRT-Projektionen jetzt gekürzt werden. Die Veröffentlichung Ihrer App in gekürztem Zustand kann den Speicherplatzbedarf Ihrer App verringern, indem nicht verwendeter Code aus kürzungsfähigen Binärdateien entfernt wird. Bei Apps kann auch eine Verbesserung der Startleistung festgestellt werden. Bei einer einfachen „Hallo Welt“-App haben wir eine Verbesserung von ca. 80 % beim Datenträgerspeicherplatz und eine Verbesserung von ca. 7 % bei der Startleistung festgestellt, wenn die App gekürzt veröffentlicht wurde. Beim dem WinUI-Katalog haben wir eine Verbesserung des Speicherplatzbedarfs von ca. 45 % festgestellt.
Weitere Informationen zum Aktivieren der Kürzung, Einschränkungen beim Kürzen (z. B. Reflektion für kürzungsfähige Typen) und Kürzen von Warnungen finden Sie unter Kürzen eigenständiger Bereitstellungen und ausführbarer Dateien. Entwickler*innen sollten ihre Apps nach dem Kürzen gründlich testen, um sicherzustellen, dass alles wie erwartet funktioniert. Weitere Informationen finden Sie im GitHub-Issue #2478.
DisplayInformation
Win32-Apps können jetzt High Dynamic Range (HDR) über die DisplayInformation-Klasse in WinAppSDK unterstützen. Mit der DisplayInformation-Klasse können Sie displaybezogene Informationen für eine Anwendungsansicht überwachen. Dies umfasst Ereignisse, mit denen Clients Änderungen an der Anwendungsansicht überwachen können, die sich darauf auswirken, auf welchen Displays die Ansicht angezeigt wird, sowie Änderungen an Displays, die sich auf die Anwendungsansicht auswirken können.
Behobene Probleme in WinUI 3
- Material mit Acrylic-Hintergrund über DesktopAcrylicController wird jetzt in Windows 10-Apps unterstützt. Weitere Informationen finden Sie im GitHub-Issue #7112.
- Es wurde ein Problem behoben, das dazu führte, dass App.UnhandledException nicht an die Anwendung weitergeleitet wurde. Weitere Informationen finden Sie im GitHub-Issue #5221.
- Ein Problem wurde behoben, das dazu führte, dass ListView-Stile aus WinAppSDK 1.1 zurückgebildet und geändert wurden. Weitere Informationen finden Sie im GitHub-Issue #7666.
Weitere Einschränkungen und bekannte Probleme
Wichtig
Wenn Sie aus einem Projekt auf WinAppSDK 1.2 verweisen, wird möglicherweise ein Fehler ähnlich dem folgenden angezeigt: Paketdowngrade erkannt: Microsoft.Windows.SDK.BuildTools von 10.0.22621.1 auf 10.0.22000.194. Dieser wird durch inkompatible Verweise auf das Paket aus dem App-Projekt und dem WinAppSDK-Paket verursacht. Um dies zu beheben, können Sie den Verweis im Projekt auf eine neuere und kompatible Version von Microsoft.Windows.SDK.BuildTools aktualisieren oder einfach den Verweis aus Ihrem Projekt entfernen. Wenn Sie ihn aus Ihrem Projekt entfernen, wird vom WinAppSDK-Paket implizit auf eine kompatible Version verwiesen.
- Das Erstellen mit Arm64 Visual Studio wird derzeit nicht unterstützt.
- Die Standardwerte für die automatischen Initialisierer von Bootstrapper und Undocked RegFree WinRT sind (jetzt) nur für Projekte festgelegt, die eine ausführbare Datei erzeugen (OutputType: „Exe“ oder „WinExe“). Dies verhindert das standardmäßige Hinzufügen automatischer Initialisierer zu Klassenbibliothek-DLLs und anderen nicht ausführbaren Dateien.
- Wenn Sie einen automatischen Initialisierer in einer nicht ausführbaren Datei benötigen (z. B. eine Test-DLL, die von einer generischen ausführbaren Datei geladen wird, die den Bootstrapper nicht initialisiert), können Sie einen automatischen Initialisierer in Ihrem Projekt explizit über
<WindowsAppSdkBootstrapInitialize>true</WindowsAppSdkBootstrapInitialize>
oder<WindowsAppSdkUndockedRegFreeWinRTInitialize>true</WindowsAppSdkUndockedRegFreeWinRTInitialize>
aktivieren.
- Wenn Sie einen automatischen Initialisierer in einer nicht ausführbaren Datei benötigen (z. B. eine Test-DLL, die von einer generischen ausführbaren Datei geladen wird, die den Bootstrapper nicht initialisiert), können Sie einen automatischen Initialisierer in Ihrem Projekt explizit über
- Die APIs für Versionsinformationen (ReleaseInfo und RuntimeInfo) können aufgerufen werden, geben aber Version 0 zurück (und nicht die tatsächlichen Versionsinformationen).
Version 1.2 Vorschau 1 (1.2.0-preview1)
In einer vorhandenen Windows App SDK 1.1-App (aus dem stabilen Kanal) können Sie Ihr NuGet-Paket auf 1.2.0-preview1 aktualisieren (weitere Informationen finden Sie im Abschnitt Aktualisieren eines Pakets in Installieren und Verwalten von Paketen in Visual Studio mit dem NuGet-Paket-Manager).
Die aktualisierten Runtime- und MSIX-Pakete finden Sie unter Downloads für das Windows App SDK.
WinUI 3
WinUI 3-Apps können Audio- und Videodaten mit den Steuerelementen MediaPlayerElement und MediaTransportControls für die Medienwiedergabe wiedergeben. Weitere Informationen zur Verwendung von Mediensteuerelementen finden Sie unter Media Player.
WinUI 3 wurde mit den neuesten Steuerelementen, Stilen und Verhaltensweisen von WinUI 2.8 aktualisiert. Diese Updates umfassen das Hinzufügen des Steuerelements InfoBadge, Verbesserungen bei Barrierefreiheit und dem Modus mit hohem Kontrast sowie Fehlerbehebungen für verschiedene Steuerelemente. Weitere Informationen finden Sie in den Versionshinweisen für WinUI 2.7 und WinUI 2.8.
Bekanntes Problem
ListView-Formatvorlagen wurden aus WinAppSDK 1.1 zurückgebildet und geändert.
Benachrichtigungen
AppNotificationBuilder wurde als Alternative zur XML-Payload zum Erstellen und Definieren von App-Benachrichtigungen eingeführt.
Informationen zur Verwendung finden Sie in der Spezifikation zu AppNotificationBuilder auf GitHub.
Ein Beispiel zum Erstellen einer Windows-Desktopanwendung, die lokale App-Benachrichtigungen sendet und empfängt, finden Sie auch unter Schnellstart: App-Benachrichtigungen im Windows App SDK.
Wichtige Änderung
Damit Pushbenachrichtigungen verarbeitet werden, müssen Apps beim Senden eines Anforderungsaufrufs für den Kanal die Azure-Objekt-ID anstelle der Azure-App-ID verwenden. Weitere Informationen zum Suchen nach Ihrer Azure-Objekt-ID finden Sie unter Schnellstart: Pushbenachrichtigung im Windows App SDK.
Behobenes Problem
PushNotificationManager.IsSupported führt eine Überprüfung auf den Modus mit erhöhten Rechten durch. Wenn die App über erhöhte Rechte verfügt, wird false
zurückgegeben.
Bekannte Einschränkungen (Benachrichtigungen)
- In AppNotificationScenario wird
Urgent
nur für den Windows-Build 19041 und höher unterstützt. Sie können AppNotificationBuilder.IsUrgentScenarioSupported verwenden, um zur Laufzeit zu überprüfen, ob das Feature verfügbar ist. - In AppNotificationButton werden
hint-toolTip
undhint-buttonStyle
werden nur für den Build 19041 und höher unterstützt. Sie können IsButtonStyleSupported und IsToolTipSupported verwenden, um zur Laufzeit zu überprüfen, ob das Feature verfügbar ist. - Wenn MediaPlayerElement im XAML-Markup für eine nicht gepackte App verwendet wird, kann die Source-Eigenschaft nicht mit einem ms-appx- oder ms-resource-URI festgelegt werden. Alternativ dazu können Sie die Quelle mithilfe eines Datei-URI oder im Code festlegen.
Windowing
Eine vollständige Anpassung der Titelleiste ist jetzt unter Windows 10, Version 1809 und höher über die AppWindowTitleBar-Klasse verfügbar. Sie können AppWindowTitleBar.ExtendContentIntoTitleBar auf true
festlegen, um Inhalte in den Titelleistenbereich zu erweitern, und Sie können SetDragRectangles festlegen, um Ziehbereiche (zusätzlich zu anderen Anpassungsoptionen) zu definieren.
Wenn Sie die Eigenschaft AppWindowTitleBar.IsCustomizationSupported verwendet haben, um zu überprüfen, ob Sie die AppWindowTitleBar-APIs aufrufen können, gibt sie in unterstützten Versionen von Windows 10 (1809 und höher) für Windows App SDK jetzt true
zurück.
Bekannte Einschränkungen (Fensterfunktionen)
Einfache Titelleistenanpassungen werden unter Windows 10 nicht unterstützt. Dazu gehören BackgroundColor, InactiveBackgroundColor, ForegroundColor, InactiveForegroundColor und IconShowOptions. Wenn Sie diese Eigenschaften aufrufen, werden sie ohne Rückmeldung ignoriert. Alle anderen AppWindowTitleBar-APIs funktionieren unter Windows 10, Version 1809 und höher. Für die APIs für die Farben von Schaltflächen für Untertitel (u. a.) sowie für Height muss ExtendsContentIntoTitleBar auf true
festgelegt werden, andernfalls werden sie ebenfalls ohne Rückmeldung ignoriert.
Zugriffssteuerung
Security.accesscontrol.h mit der Funktion GetSecurityDescriptorForAppContainerNames wurde eingeführt, um die gemeinsame Nutzung benannter Objekte für gepackte Prozesse und allgemeine Win32-APIs zu vereinfachen und zu optimieren. Diese Methode akzeptiert eine Liste mit Paketfamiliennamen (Package Family Names, PFNs) und Zugriffsmasken und gibt einen Sicherheitsdeskriptor zurück. Weitere Informationen finden Sie in der Spezifikation zu GetSecurityDescriptorForAppContainerNames auf GitHub.
Weitere Einschränkungen und bekannte Probleme
- .NET PublishSingleFile wird nicht unterstützt.
Version 1.1 Vorschau 3 (1.1.0-preview3)
Das ist das neueste Release des Vorschaukanals für Version 1.1. Es unterstützt alle Features des Vorschaukanals (siehe Features, die über den Releasekanal verfügbar sind).
In einer vorhandenen App unter Verwendung von Windows App SDK 1.0 können Sie Ihr NuGet-Paket auf 1.1.0-preview3 aktualisieren (weitere Informationen finden Sie im Abschnitt Aktualisieren eines Pakets in Installieren und Verwalten von Paketen in Visual Studio mit dem NuGet-Paket-Manager). Darüber hinaus finden Sie Aktualisierungen von Runtime und MSIX unter Downloads für das Windows App SDK.
Hinweis
Für die C#-Entwicklung ist eine der folgenden .NET SDK-Versionen (oder höher) erforderlich: 6.0.202, 6.0.104, 5.0.407, 5.0.213. Zum Aktualisieren Ihrer .NET SDK-Version besuchen Sie die Download-Website für .NET, oder aktualisieren Sie Visual Studio auf die neueste Version. Wenn Sie Ihr NuGet-Paket ohne die erforderliche .NET SDK-Version aktualisieren, wird ein Fehler wie dieser angezeigt: Diese Version von WindowsAppSDK erfordert WinRT.Runtime.dll Version 1.6 oder höher.
Neben allen Features der Vorschau 2 werden in den folgenden Abschnitten neue und aktualisierte Features, Einschränkungen und bekannte Probleme für dieses Release beschrieben.
WinUI 3
Mica und Background Acrylic sind jetzt für WinUI 3-Anwendungen verfügbar.
Weitere Informationen zu diesen Materialien finden Sie unter Materialien in Windows 11. Sehen Sie sich unseren Beispielcode zum Anwenden von Mica in C++-Anwendungen unter Verwenden eines SystemBackdropController mit WinUI 3-XAML und in C#-Anwendungen auf GitHub in der WinUI-Steuerelementsammlung an.
Benachrichtigungen
Behobene Probleme:
- In 1.1.0-preview1 und 1.1.0-preview2 wurden die App-Symbole einiger ungepackter Apps fälschlicherweise in AppData\LocalMicrosoftWindowsAppSDK kopiert. Bei diesem Release werden sie stattdessen in AppData\Local\Microsoft\WindowsAppSDK kopiert. Um den Verlust von Symbolen zu vermeiden, sollten Sie das App-Symbol nach dem Update auf 1.1.0-preview3 unter dem falschen Pfad manuell löschen.
- Der Abruf von App-Symbol und App-Anzeige für App-Benachrichtigungen über Verknüpfungen wird jetzt unterstützt. Dieses App-Symbol hat Vorrang vor einem in Ressourcendateien angegebene Symbol.
- Die Unterstützung von Pushbenachrichtigungen für ungepackte Apps wurde wiederhergestellt (siehe Einschränkungen für die beschriebene Ausnahme). Wir haben die API PushNotificationManager::IsSupported eingeführt, mit der sich überprüfen lässt, ob Ihre App Pushbenachrichtigungen unterstützt.
Einschränkungen:
- Benachrichtigungen für eine nicht gepackte App mit erhöhten Rechten werden nicht unterstützt. PushNotificationManager::IsSupported führt keine Überprüfung auf den Modus mit erhöhten Rechten durch. Wir arbeiten jedoch an der Unterstützung dieser Funktion in einem künftigen Release.
MSIX-Paketerstellung
MSIX wurde durch Aufnahme neuer und Erweiterung vorhandener Funktionen über folgende Erweiterungskategorien erweitert:
- windows.appExecutionAlias
- windows.customDesktopEventLog
- windows.dataShortcuts
- windows.fileTypeAssociation
- windows.fileTypeAssociation.iconHandler
- windows.folder
- windows.shortcut
Hierfür muss das Windows App SDK-Frameworkpaket installiert sein. Informationen zum Installieren der Runtime finden Sie bei den Downloads für das Windows App SDK.
Umgebungsmanager
API-Satz, mit dem Entwickler Umgebungsvariablen hinzufügen, entfernen und ändern können, ohne die Registrierungs-API direkt verwenden zu müssen.
Klarstellung zu 1.1 Vorschau 1: Das automatisches Entfernen von Änderungen an Umgebungsvariablen beim Deinstallieren einer App, die den Umgebungsmanager verwendet hat, ist nur für gepackte Apps verfügbar. Darüber hinaus erfordert das Rückgängigmachen der Umgebungsvariablen die Installation des Windows App SDK-Frameworkpakets. Weitere Informationen finden Sie unter Downloads für das Windows App SDK für die Runtime.
Andere bekannte Einschränkungen
Regressionen von 1.1 Vorschau 2:
- Für .NET-Apps mit MRT Core-APIs und WinUI-Apps, die nicht mit Einzelprojekt-MSIX bereitgestellt werden:
- RESW- und Bilddateien, die dem Projekt als vorhandene Elemente hinzugefügt wurden und bisher automatisch in die ItemGroups PRIResource bzw. Content aufgenommen wurden, werden nicht in diese ItemGroups aufgenommen. Aufgrund dessen werden diese Ressourcen während der PRI-Generierung nicht indiziert und sind deshalb während der Runtime nicht verfügbar.
- Problemumgehung: Nehmen Sie die Ressourcen manuell in die Projektdatei auf und entfernen Sie sie aus der ItemGroup None.
- Alternative Problemumgehung: Nehmen Sie, falls verfügbar, ein Upgrade des .NET SDK Ihrer Apps auf 6.0.300 vor. Weitere Informationen finden Sie unter Versionsanforderungen für .NET SDK .
- RESW- und Bilddateien, die dem Projekt als vorhandene Elemente hinzugefügt wurden und bisher automatisch in die ItemGroups PRIResource bzw. Content aufgenommen wurden, werden nicht in diese ItemGroups aufgenommen. Aufgrund dessen werden diese Ressourcen während der PRI-Generierung nicht indiziert und sind deshalb während der Runtime nicht verfügbar.
- Für .NET-Apps, die nicht mit Einzelprojekt-MSIX bereitgestellt werden:
- Wenn eine Datei zweimal oder öfter zur ItemGroup Content hinzugefügt wird, tritt ein Buildfehler auf.
- Problemumgehung: Löschen Sie die doppelte(n) Aufnahme(n) oder setzen Sie EnableDefaultContentItems in der Projektdatei auf „false“.
- Wenn eine Datei zweimal oder öfter zur ItemGroup Content hinzugefügt wird, tritt ein Buildfehler auf.
Beide Regressionen werden im nächsten stabilen Release wiederhergestellt.
Version 1.1 Vorschau 2 (1.1.0-preview2)
Das ist das zweite Release des Vorschaukanals für Version 1.1. Es unterstützt alle Features des Vorschaukanals (siehe Features, die über den Releasekanal verfügbar sind).
In einer vorhandenen App unter Verwendung von Windows App SDK 1.0 können Sie Ihr NuGet-Paket auf 1.1.0-preview2 aktualisieren (weitere Informationen finden Sie im Abschnitt Aktualisieren eines Pakets in Installieren und Verwalten von Paketen in Visual Studio mit dem NuGet-Paket-Manager). Darüber hinaus finden Sie Aktualisierungen von Runtime und MSIX unter Downloads für das Windows App SDK.
Hinweis
Für die C#-Entwicklung ist eine der folgenden .NET SDK-Versionen (oder höher) erforderlich: 6.0.202, 6.0.104, 5.0.407, 5.0.213. Zum Aktualisieren Ihrer .NET SDK-Version besuchen Sie die Download-Website für .NET, oder aktualisieren Sie Visual Studio auf die neueste Version. Wenn Sie Ihr NuGet-Paket ohne die erforderliche .NET SDK-Version aktualisieren, wird ein Fehler wie dieser angezeigt: Diese Version von WindowsAppSDK erfordert WinRT.Runtime.dll Version 1.6 oder höher.
Neben allen Features der Vorschau 1 werden in den folgenden Abschnitten neue und aktualisierte Features, Einschränkungen und bekannte Probleme für dieses Release beschrieben.
Benachrichtigungen
Behobene Probleme:
- Bei einer App ohne Paketidentität zum Senden von Benachrichtigungen wird nun das App-Symbol in der Benachrichtigung angezeigt, wenn das Symbol Teil der App-Ressource ist. Wenn es in der App-Ressource kein Symbol gibt, wird das Windows-Standard-App-Symbol verwendet.
- Eine nicht ausgeführte WinUI 3-App kann jetzt über eine Benachrichtigung im Hintergrund aktiviert werden.
Regression von 1.1 Vorschau 1: Unterstützung von Pushbenachrichtigungen für ungepackte Apps. Für das nächste Release wird die Wiederherstellung erwartet.
Bekannte Einschränkungen:
- Wir haben die API PushNotificationManager::IsSupported eingeführt, mit der sich überprüfen lässt, ob eigenständige Apps Pushbenachrichtigungen unterstützen. Diese API funktioniert jedoch noch nicht wie vorgesehen. Achten Sie daher im nächsten Vorschaurelease auf die vollständige Unterstützung der IsSupported-API.
- Die App-Symbole einiger ungepackter Apps wurden fälschlicherweise in AppData\LocalMicrosoftWindowsAppSDK kopiert. Beim nächsten Release werden sie stattdessen in AppData\Local\Microsoft\WindowsAppSDK kopiert. Um den Verlust von Symbolen zu vermeiden, sollte der Entwickler sein App-Symbol nach dem Upgrade auf das nächste Release unter dem falschen Pfad manuell löschen.
- Der Abruf von App-Symbol und App-Anzeige für Benachrichtigungen über Verknüpfungen wird nicht unterstützt. Wir arbeiten aber an der Unterstützung in einem künftigen Release.
Bereitstellung
Neue Features:
- Gepackte Apps können jetzt die Bereitstellung der Windows App SDK-Laufzeitpakete über die API DeploymentManager.Initialize erzwingen.
- Die Bootstrapper-API enthält jetzt neue Optionen für verbesserte Benutzerfreundlichkeit und Problembehandlung. Weitere Informationen finden Sie unter Verwenden der Windows App SDK-Runtime für gepackte Apps mit externem Speicherort oder ungepackte Apps und Umfangreiche Informationen zum Bootstrap-Initialisierungsfehler.
Bekannte Einschränkungen:
- Die eigenständige Bereitstellung wird nur unter Windows 10, 1903 und höher unterstützt.
Windowing
Für einen einfacheren Programmierzugriff auf Funktionen, die in USER32.dll
implementiert sind (siehe Fenster und Meldungen), zeigt dieses Release mehr von dieser Funktionalität in AppWindow selbst.
Neue Features:
- Apps mit vorhandenen Fenstern haben durch Aufrufen von AppWindow.ShowOnceWithRequestedStartupState – dem Äquivalent zu
ShowWindow(SW_SHOWDEFAULT)
– mehr Kontrolle darüber, wie ein Fenster angezeigt wird. - Apps können ein Fenster anzeigen, minimieren oder wiederherstellen. Sie können auch angeben, ob das Fenster zum Zeitpunkt des Aufrufs aktiviert werden soll oder nicht.
- Apps können jetzt die Clientbereichsgröße eines Fensters in Win32-Koordinaten festlegen.
- Wir haben APIs zur Unterstützung der Z-Reihenfolgen-Verwaltung von Fenstern hinzugefügt.
- Apps, die mit AppWindowTitleBar.ExtendsContentIntoTitleBar benutzerdefinierte Titelleisten zeichnen, können eine Option PreferredTitleBarHeight festlegen. Sie haben jetzt die Wahl zwischen einer Titelleiste mit Standardhöhe oder einer hohen Titelleiste, die mehr Platz für interaktive Inhalte bietet. Informationen zur Verwendung einer hohen Titelleiste finden Sie unter Titelleiste in den Fluent Design-Richtlinien.
Bekannte Einschränkungen:
- Die Unterstützung der hohen Titelleiste ist nur unter Windows 11 verfügbar. Wir arbeiten an der Vereinheitlichung mit anderen benutzerdefinierten Titelleisten-APIs aus älteren Versionen.
WinUI 3
Behobene Probleme:
- Durch Upgrade des WebView2 SDK von 1020.46 auf 1185.39 wurde ein Problem behoben, das dazu führte, dass C#-Apps mit WebView2 beim Start abstürzten, wenn die C/C++ Runtime (CRT) nicht installiert war.
- Ein Problem wurde behoben, das dazu führte, dass in einigen abgerundeten Ecken ein Farbverlauf angezeigt wurde, obwohl es sich um eine Volltonfarbe handeln sollte. Weitere Informationen finden Sie in Issue 6076 und Issue 6194 auf GitHub.
- Ein Problem wurde behoben, bei dem aktualisierte Stile in generic.xaml fehlten.
- Es wurde ein Layoutzyklusproblem behoben, das dazu führte, dass eine App abstürzte, wenn bis zum Ende einer ListView gescrollt wurde. Weitere Informationen finden Sie im Issue #6218 auf GitHub.
Leistung
Für C#-Anwendungen gibt es mehrere Leistungsverbesserungen. Weitere Informationen finden Sie in den Versionshinweisen zu C#/WinRT 1.6.1.
Version 1.1 Vorschau 1 (1.1.0-preview1)
Das ist das erste Release des Vorschaukanals für Version 1.1. Es unterstützt alle Features des Vorschaukanals (siehe Features, die über den Releasekanal verfügbar sind).
In einer vorhandenen App unter Verwendung von Windows App SDK 1.0 können Sie Ihr NuGet-Paket auf 1.1.0-preview1 aktualisieren (weitere Informationen finden Sie im Abschnitt Aktualisieren eines Pakets in Installieren und Verwalten von Paketen in Visual Studio mit dem NuGet-Paket-Manager). Darüber hinaus finden Sie Aktualisierungen von Runtime und MSIX unter Downloads für das Windows App SDK.
In den folgenden Abschnitten werden neue und aktualisierte Features, Einschränkungen und bekannte Probleme für diese Version beschrieben.
WinUI 3
Bekanntes Problem: Benutzer können ein Element nicht ablegen, wenn Drag & Drop aktiviert ist.
Unterstützung erhöhter Rechte (Administrator)
Mit Windows App SDK 1.1 Vorschau 1 können Apps (einschließlich WinUI 3) mit erhöhten Rechten ausgeführt werden.
Wichtige Einschränkungen
- Derzeit nur unter Windows 11 verfügbar. Wir prüfen jedoch, ob diese Unterstützung in einem späteren Release vereinheitlicht werden kann.
Bekannte Probleme
- WinUI 3-Apps stürzen ab, wenn während einer Drag & Drop-Interaktion ein Element gezogen wird.
Eigenständige Bereitstellung
Windows App SDK 1.1 führt die Unterstützung der eigenständigen Bereitstellung ein. Unsere Übersicht über die Bereitstellung enthält Informationen zu den Unterschieden zwischen frameworkabhängiger und eigenständiger Bereitstellung sowie zu den ersten Schritten.
Bekannte Probleme:
Eine gepackte C++-App muss unten in der Projektdatei den Folgendes hinzufügen, um einen Bug in der eigenständigen
.targets
-Datei zu umgehen, der Frameworkverweise auf VCLibs entfernt:<PropertyGroup> <IncludeGetResolvedSDKReferences>true</IncludeGetResolvedSDKReferences> </PropertyGroup> <Target Name="_RemoveFrameworkReferences" BeforeTargets="_ConvertItems;_CalculateInputsForGenerateCurrentProjectAppxManifest"> <ItemGroup> <FrameworkSdkReference Remove="@(FrameworkSdkReference)" Condition="'%(FrameworkSdkReference.SDKName)' == 'Microsoft.WindowsAppRuntime.1.1-preview1'" /> </ItemGroup> </Target>
Nur unter Windows 10, 1903 und höher unterstützt.
Benachrichtigungen
Entwickler*innen von gepackten Apps (einschließlich gepackten Apps mit externem Speicherort) und nicht gepackten Apps können jetzt Windows-Benachrichtigungen senden.
Neue Features:
- Unterstützung für App-Benachrichtigungen für gepackte und nicht gepackte Apps. Vollständige Details auf GitHub
- Entwickler*innen können App-Benachrichtigungen – auch als Popupbenachrichtigungen bezeichnet – lokal oder über ihren eigenen Clouddienst senden.
- Unterstützung der Pushbenachrichtigung für gepackte und ungepackte Apps. Vollständige Details auf GitHub
- Entwickler*innen können unformatierte Benachrichtigungen oder App-Benachrichtigungen über ihren eigenen Clouddienst senden.
Einschränkungen:
- Als eigenständig veröffentlichte Apps haben möglicherweise keine Unterstützung von Pushbenachrichtigungen. Achten Sie im nächsten Vorschaurelease auf eine IsSupported-API, um die Unterstützung von Pushbenachrichtigungen zu überprüfen.
- Bei ungepackten Apps, die App-Benachrichtigungen senden, ist das App-Symbol in der App-Benachrichtigung nicht zu sehen, es sei denn, es handelt sich um Konsolenanwendungen. Ungepackte Konsolen-Apps sollten den Mustern aus dem Beispiel ToastNotificationsDemoApp folgen.
- Zur Unterstützung von Pushbenachrichtigung muss Windows App SDK-Runtime installiert werden, siehe Downloads für das Windows App SDK für das Installationsprogramm.
- Eine nicht ausgeführte WinUI 3-App kann nicht über eine Benachrichtigung im Hintergrund aktiviert werden. Wir arbeiten aber an der Unterstützung in einem künftigen Release.
Umgebungsmanager
API-Satz, mit dem Entwickler Umgebungsvariablen hinzufügen, entfernen und ändern können, ohne die Registrierungs-API direkt verwenden zu müssen.
Neue Features
- Ermöglicht das automatische Entfernen von Änderungen an Umgebungsvariablen beim Deinstallieren einer App, die den Umgebungs-Manager verwendet hat.
Einschränkungen
- Derzeit nicht in C#-Apps verfügbar. Wir prüfen jedoch die Aufnahme dieses Features in C#-Apps in einem späteren Release.
Weitere Einschränkungen und bekannte Probleme
- Wenn Sie C# mit 1.1.0 Vorschau 1 verwenden, müssen Sie mindestens eine der folgenden .NET SDK-Versionen verwenden: .NET SDK 6.0.201, 6.0.103, 5.0.212 oder 5.0.406. Für ein Upgrade Ihrer .NET SDK-Version können Sie ein Update auf die neueste Version von Visual Studio vornehmen oder zu Download .NET gehen.
Version 1.0 Vorschau 3 (1.0.0-preview3)
Vorschau 3 ist das neueste Release des Vorschaukanals für Version 1.0 des Windows App SDK. Vorschau 3 unterstützt alle Features des Vorschaukanals.
Herunterladen von Visual Studio-Erweiterungen (VSIX) für 1.0 Vorschau 3
Hinweis
Wenn Sie bereits Visual Studio-Erweiterungen (VSIX) für das Windows App SDK installiert haben, deinstallieren Sie diese, bevor Sie eine neue Version installieren. Anweisungen finden Sie unter Verwalten von Erweiterungen für Visual Studio.
In der folgenden Tabelle können Sie die Visual Studio-Erweiterungen (VSIX) für das Release 1.0 Vorschau 3 herunterladen. Alle Versionen finden Sie unter Downloads für das Windows App SDK. Konfigurieren Sie zunächst, falls noch nicht geschehen, Ihre Entwicklungsumgebung nach den Schritten unter Installationstools für das Windows App SDK.
Die folgenden Erweiterungen sind auf Ihre Programmiersprache und Version von Visual Studio zugeschnitten.
Downloads für 1.0 Vorschau 3 | Beschreibung |
---|---|
C# Erweiterung für Visual Studio 2019 | Erstellen von C#-Apps mit der Erweiterung für Visual Studio 2019 für Windows App SDK. |
C++ Erweiterung für Visual Studio 2019 | Erstellen von C++-Apps mit der Erweiterung für Visual Studio 2019 für Windows App SDK. |
C# Erweiterung für Visual Studio 2022 | Erstellen von C#-Apps mit der Erweiterung für Visual Studio 2022 für Windows App SDK. |
C++ Erweiterung für Visual Studio 2022 | Erstellen von C++-Apps mit der Erweiterung für Visual Studio 2022 für Windows App SDK. |
Die .exe -Installationsprogramm- und MSIX-Pakete |
Stellen Sie das Windows App SDK mit Ihrer App mit den .exe -Installationsprogramm- und MSIX-Paketen bereit. |
In den folgenden Abschnitten werden neue und aktualisierte Features, Einschränkungen und bekannte Probleme für 1.0 Vorschau 3 beschrieben.
WinUI 3
Wir unterstützen jetzt die Bereitstellung von WinUI 3-Apps ohne MSIX-Paketerstellung. Informationen zum Konfigurieren Ihrer WinUI 3-Anwendung zur Unterstützung der ungepackten Bereitstellung finden Sie unter Erstellen Ihres ersten WinUI 3-Projekts.
Wichtige Einschränkungen
- Ungepackte WinUI 3-Anwendungen werden nur unter Windows-Versionen 1909 und höher unterstützt.
- Ungepackte WinUI 3-Anwendungen werden auf x86 und x64 unterstützt. Arm64-Unterstützung kommt im nächsten stabilen Release hinzu.
- Es sind MSIX-Paketerstellungstools für Einzelprojekte für Visual Studio 2019 oder Visual Studio 2022 sind für ungepackte Apps erforderlich.
- In einer ungepackten App erhalten Sie möglicherweise eine Aufforderung zum Installieren von .NET 3.5, die ignoriert werden kann.
- Einige APIs werden in ungepackten Apps derzeit nicht unterstützt. Das soll im nächsten stabilen Release behoben werden. Einige Beispiele:
- ApplicationData
- StorageFile.GetFileFromApplicationUriAsync
- ApiInformation (unter Windows 10 nicht unterstützt)
- Package.Current
- ListView-, CalendarView- und GridView-Steuerelemente verwenden die falschen Formatvorlagen, was im nächsten stabilen Release behoben werden soll.
Weitere Informationen sowie die erste Schritte zur Entwicklung mit WinUI 3 finden Sie unter:
Weitere Einschränkungen und bekannte Probleme
Ungepackte Apps werden unter Windows 10, Version 1809 nicht unterstützt. Das soll im nächsten Release im stabilen Kanal behoben werden.
Eine C#-MSIX-Einzelprojekt-App wird nicht kompiliert, wenn die C++-UWP-Tools nicht installiert sind. Im Fall einer C#-App mit einem MSIX-Einzelprojektpaket müssen Sie die optionale Komponente C++ (v14x)-Tools für Universelle Windows-Plattform installieren.
In diesem Release werden die Projektvorlagen Leere App, gepackt (WinUI 3 in Desktop) für C# und C++ eingeführt. Diese Vorlagen ermöglichen Ihnen die Aufnahme Ihrer App in ein MSIX-Paket ohne Verwendung eines separaten Paketerstellungprojekts (siehe Packen Ihrer App mit Einzelprojekt-MSIX). Diese Vorlagen haben einige bekannte Probleme in diesem Release:
Menüelement „Veröffentlichen“ fehlt, bis Visual Studio neu gestartet wird. Beim Erstellen einer neuen App in Visual Studio 2019 und Visual Studio 2022 mithilfe der Projektvorlage Leere App, gepackt (WinUI 3 in Desktop) wird der Befehl zum Veröffentlichen des Projekts erst im Menü angezeigt, wenn Sie Visual Studio schließen und erneut öffnen.
Fehler beim Hinzufügen von C++-Projektverweisen für statische/dynamische Bibliotheken zu C++-Apps anhand der MSIX-Paketerstellung für Einzelprojekte. Visual Studio zeigt einen Fehler an, dass das Projekt nicht als Verweis hinzugefügt werden kann, weil die Projekttypen nicht kompatibel sind.
Fehler beim Verweisen auf ein benutzerdefiniertes Benutzersteuerelement in einem Klassenbibliotheksprojekt. Die Anwendung stürzt ab mit der Fehlermeldung, dass das System den angegebenen Pfad nicht finden kann.
C#- oder C++-Vorlage für Visual Studio 2019. Beim Versuch, das Projekt zu erstellen, tritt der Fehler „Das Projekt weiß nicht, wie das Profil Projektname auszuführen ist“ auf. Installieren Sie zum Beheben dieses Problems die Erweiterung zu MSIX-Paketerstellungstools für Einzelprojekte.
C#-Vorlage für Visual Studio 2019 und Visual Studio 2022. Wenn in Visual Studio nach Debuggen oder Ohne Debuggen starten Ihre App nicht bereitstellt und ausgeführt wird (und kein Feedback von Visual Studio vorhanden ist), klicken Sie in Visual Studio im Projektmappen-Explorer zum Auswählen auf den Pojektknoten und versuchen Sie es erneut.
C#-Vorlage für Visual Studio 2019 und Visual Studio 2022. Es tritt der folgende Fehler auf, wenn Sie versuchen, Ihr Projekt auf Ihrem Entwicklungscomputer auszuführen oder zu debuggen: „Das Projekt muss vor dem Debuggen bereitgestellt werden. Aktivieren Sie „In Configuration Manager bereitstellen“. Aktivieren Sie die Bereitstellung für Ihr Projekt im Configuration Manager, um dieses Problem zu beheben. Ausführliche Anweisungen finden Sie unter Erstellen Ihres ersten WinUI 3-Projekts.
C++-Vorlage für Releases von Visual Studio 2022, Version 17.0 bis Vorschau 4. Beim ersten Versuch, das Projekt auszuführen, tritt der folgende Fehler auf: „Es gab Bereitstellungsfehler“. Zum Beheben dieses Problems müssen Sie Ihr Projekt ein zweites Mal ausführen oder bereitstellen. Das Problem wird in Visual Studio 2022, Version 17.0 Vorschau 7 behoben.
Keine Unterstützung für Buildkonfigurationen mit „Beliebige CPU“: Beim Hinzufügen des Windows App SDK zu einer vorhandenen .NET-Anwendung oder -Komponente, die Beliebige CPU unterstützt, müssen Sie die gewünschte Architektur angeben:
x86
,x64
oderarm64
.C#-Projekte mit 1.0 Vorschau 3 müssen das folgende .NET SDK verwenden: .NET 6 SDK oder höher (siehe Herunterladen von .NET und .NET 5 erreicht das Ende des Supports am 10. Mai 2022).
Eine Alternative zu DispatcherQueue.TryEnqueue (zum Fortsetzen der Ausführung im Warteschlangenthread des Verteilers) besteht darin, die resume_foreground-Hilfsfunktion in der Windows Implementation Library (WIL) zu verwenden:
- Fügen Sie dem NuGet-Paket Microsoft.Windows.ImplementationLibrary einen Verweis auf Ihr Projekt hinzu.
- Fügen Sie
#include <wil/cppwinrt_helpers.h>
zupch.h
hinzu. - Fügen Sie
#include <winrt/Microsoft.UI.Dispatching.h>
zupch.h
hinzu. - Jetzt:
co_await wil::resume_foreground(your_dispatcherqueue);
.
Wichtiges Problem, das sich auf 1.0 Vorschau 1 und Vorschau 2 auswirkt
Version 1.0 Vorschau 1 und Vorschau 2 des Windows App SDK enthält einen Mechanismus zum Bereinigen aller von einer gepackten App vorgenommenen Änderungen an Umgebungsvariablen, wenn diese App deinstalliert wird. Dieses Feature befindet sich in einem experimentellen Zustand, und das erste Release enthält einen bekannten Bug, der die Umgebungsvariable PATH des Systems beschädigen kann.
Die Vorschau 1 und Vorschau 2 beschädigt jede Umgebungsvariable PATH, die das Erweiterungszeichen %
enthält. Dies geschieht bei jedem Deinstallieren einer gepackten App, unabhängig davon, ob diese App das Windows App SDK verwendet.
Siehe auch Problem der Beschädigung der Umgebungsvariable PATH.
Details
Der Eintrag PATH des Systems wird unter dem Pfadwert im folgenden Schlüssel in der Windows-Registrierung gespeichert:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Wenn Sie den Registrierungs-Editor (regedit.exe
) starten, können Sie den obigen Pfad kopieren und in die Breadcrumb-Leiste einfügen (direkt unter der Menüleiste), und zum Lokalisieren der Taste die Eingabetaste drücken.
Der Pfadwert dieses Schlüssels sollte vom Typ REG_EXPAND_SZ sein, wird aber durch den Bug in REG_SZ geändert. Und dadurch wird die Umgebungsvariable PATH des Systems unbrauchbar, wenn sie das Variablenerweiterungszeichen %
enthält.
Betroffene Releases
Abmilderung
Führen Sie die folgenden Schritte aus, um Ihren Computer wieder in einen ordnungsgemäßen Zustand zu versetzen:
Überprüfen Sie, ob der PATH in der Registrierung beschädigt ist, und setzen Sie ihn ggf. durch Ausführen des folgenden Skripts zurück.
Sie können Schritt 1 mit dem folgenden Windows PowerShell-Skript ausführen (PowerShell Core funktioniert nicht). Führen Sie es mit erhöhten Rechten aus.
# This script must be run from an elevated Windows PowerShell # window (right-click Windows PowerShell in the Start menu, # and select Run as Administrator). # If the PATH in the Registry has been set to REG_SZ, then delete # it, and recreate it as REG_EXPAND_SZ. $EnvPath = 'Registry::HKLM\System\CurrentControlSet\Control\Session Manager\Environment' $Environment=Get-Item $EnvPath $PathKind = $Environment.GetValueKind('Path') if ($PathKind -ne 'ExpandString') { $Path = $Environment.GetValue('Path') Remove-ItemProperty $EnvPath -Name Path New-ItemProperty $EnvPath -Name Path -PropertyType ExpandString -Value $Path }
Deinstallieren Sie alle Apps, die das Windows App SDK 1.0 Vorschau 1 oder Vorschau 2 verwenden (siehe folgendes Skript).
Deinstallieren Sie die Windows App SDK 1.0 Vorschau 1/Vorschau 2-Pakete, einschließlich des Pakets, das den Bug enthält (siehe folgendes Skript).
Sie können die Schritte 2 und 3 mit dem folgenden Windows PowerShell-Skript ausführen (PowerShell Core funktioniert nicht). Führen Sie es mit erhöhten Rechten aus.
# This script must be run from an elevated Windows PowerShell # window (right-click Windows PowerShell in the Start menu, # and select Run as Administrator). # Remove the Windows App SDK 1.0 Preview1/2, and all apps that use it. $winappsdk = "Microsoft.WindowsAppRuntime.1.0-preview*" Get-AppxPackage | Where-Object { $_.Dependencies -like $winappsdk } | Remove-AppxPackage Get-AppxPackage $winappsdk | Remove-AppxPackage
Behebung in Windows App SDK 1.0 Vorschau 3
Das Feature, durch das die Umgebungsvariable PATH beschädigt wird, wird im kommenden Release von Windows App SDK 1.0 Vorschau 3 entfernt. Es kann zu einem späteren Zeitpunkt nach Beheben aller Bugs und gründlichen Tests wieder eingeführt werden.
Wir empfehlen die Verwendung von Version 1.0 Vorschau 3.
Version 1.0 Vorschau 2 (1.0.0-preview2)
Wichtig
Version 1.0 Vorschau 1 und Vorschau 2 enthalten einen kritischen Bug. Wenn Sie bereits eine dieser Vorschauversionen installiert haben, verweisen wir Sie auf Informationen zum Beheben des Problems. Wir empfehlen stattdessen die Verwendung von Version 1.0 Vorschau 3.
Das ist das neueste Release des Vorschaukanals für Version 1.0. Es unterstützt alle Features des Vorschaukanals.
In den folgenden Abschnitten werden neue und aktualisierte Features, Einschränkungen und bekannte Probleme für diese Version beschrieben.
WinUI 3
Neue Aktualisierungen:
- Steuerelemente wurden so aktualisiert, dass sie den neuesten Windows-Formatvorlagen von WinUI 2.6 entsprechen.
- Einzelprojekt-MSIX wird unterstützt.
- WinUI 3-Paket kann jetzt auf Build 17763 und höher abzielen. Weitere Informationen finden Sie im Issue 921.
- Die In-App-Symbolleiste wird unterstützt. Die In-App-Symbolleiste und die vorhandene Unterstützung der visuellen Struktur Hot Reload/Live erfordern jedoch das kommende Release von Visual Studio 17.0 Vorschau 5, das später im Oktober verfügbar ist.
Bug behoben: WebView2Runtime-Text ist jetzt lokalisiert.
Weitere Informationen sowie die erste Schritte zur Entwicklung mit WinUI 3 finden Sie unter:
Windowing
In diesem Release werden Aktualisierungen der AppWindow-Klasse eingeführt. In diesem Release kamen keine wichtigen neuen Features hin, aber es gibt Änderungen an Methodennamen und Eigenschaften, und einige Rückgabewerte wurden entfernt. Detaillierte Informationen zu den Aktualisierungen finden Sie in der Dokumentation und in den Beispielen. Wenn Sie mit AppWindow in den Releases der experimentellen Version 1.0 oder 1.0 Vorschau 1 gearbeitet haben, erwarten Sie einige Änderungen an Ihrem Code.
Neue Aktualisierungen:
- Die Klasse AppWindowConfiguration wurde entfernt. Die Eigenschaften dieser Klasse stehen jetzt in AppWindow selbst oder in den Presenter-Klassen zur Verfügung.
- Die meisten
bool
-Rückgabewerte für die WinRT-API-Methoden in diesem Bereich wurden entfernt und sind jetztvoid
, da diese Methoden immer erfolgreich sind. - Die C#-ImportDll-Aufrufe sind für GetWindowIdFromWindow und GetWindowFromWindowId nicht mehr erforderlich. Verwenden Sie stattdessen die .NET-Wrapper-Methoden, die in der Klasse Microsoft.UI.Win32Interop zur Verfügung stehen.
Wichtige Einschränkungen:
- Das Windows App SDK verfügt derzeit über keine Methoden zum Anfügen von UI-Framework-Inhalten an AppWindow. Sie sind auf die Verwendung der Interop-Zugriffsmethoden beschränkt.
- Die Anpassung der Fenstertitelleiste funktioniert nur unter Windows 11. Prüfen Sie mit der IsCustomizationSupported-Methode, ob das Feature zur Anpassung der Titelleiste unterstützt wird. Wir planen die Vereinheitlichung dieser Funktionalität mit älteren Versionen.
Weitere Informationen finden Sie unter Verwalten von App-Fenstern.
Eingabe
Neue Aktualisierungen:
- Verbesserte Unterstützung der Eingabe über Präzisionstouchpads.
Wichtige Einschränkungen:
- Alle statischen PointerPoint-Factoryfunktionen wurden entfernt: GetCurrentPoint, GetCurrentPointTransformed, GetIntermediatePoints und GetIntermediatePointsTransformed.
- Das Windows App SDK unterstützt das Abrufen von PointerPoint-Objekten mit Zeiger-IDs nicht. Stattdessen können Sie die PointerPoint-Memberfunktion GetTransformedPoint verwenden, um eine transformierte Version eines vorhandenen PointerPoint-Objekts abzurufen. Für Zwischenpunkte können Sie die PointerEventArgs-Memberfunktionen GetIntermediatePoints und GetTransformedIntermediatePoints verwenden. Weitere Informationen finden Sie in der Dokumentation.
MRT Core
Neue Aktualisierungen:
- App-Entwickler können jetzt die Indizierung einer Bilddatei oder einer RESW-Datei in der PRI-Datei in .NET-Projekten deaktivieren. Weitere Informationen finden Sie im Issue 980.
Wichtige Einschränkungen:
- In .NET-Projekten werden Ressourcendateien, die in den Projektordner kopiert wurden, beim Drücken von F5 nicht indiziert, wenn die App bereits erstellt wurde. Erstellen Sie die App als Problemumgehung neu. Weitere Informationen finden Sie im Issue 1503.
- In .NET-Projekten werden vorhandene Ressourcendateien, die aus einem externen Ordner hinzugefügt wurden, ohne manuelle Einstellung der Build-Aktion nicht indiziert. Legen Sie zum Umgehen dieses Problems die Build-Aktion in Visual Studio fest: Content für Bilddateien und PRIResource für RESW-Dateien. Weitere Informationen finden Sie im Issue 1504.
Bereitstellung für nicht gepackte Apps
Neue Features:
- Windows App SDK 1.0 Vorschau 2 führt einen .NET-Wrapper für die Bootstrapper-API ein (siehe Verwenden der Windows App SDK-Runtime für gepackte Apps mit externem Speicherort oder nicht gepackte Apps). Die Bootstrapper-API ist eine Reihe nativer C/C++-Funktionen, die ungepackte Apps verwenden müssen, um dynamisch eine Abhängigkeit vom Windows App SDK-Frameworkpaket zur Laufzeit zu einzugehen. Der .NET-Wrapper bietet eine einfachere Möglichkeit zum Aufrufen der Bootstrapper-API aus .NET-Apps, einschließlich Windows Forms- und WPF-Apps. Der .NET-Wrapper für die Bootstrapper-API ist in der Microsoft.WindowsAppRuntime.Bootstrap.Net.dll-Assembly verfügbar, die in Ihrem App-Projekt lokal vorhanden ist. Weitere Informationen zum .NET-Wrapper finden Sie in der .NET-Wrapper-Bibliothek.
- Gepackte Apps können jetzt zum Installieren der Standard- und Singleton-MSIX-Pakete auf dem Computer die Bereitstellungs-API verwenden. Die Standard- und Singletonpakete sind Teil des mit der App installieren Frameworkpakets, aber aufgrund einer Einschränkung beim Windows-Anwendungsmodell erfordern gepackte Apps diesen zusätzlichen Schritt zum Installieren dieser Pakete. Weitere Informationen zur Funktionsweise der Bereitstellungs-API finden Sie unter Windows App SDK-Bereitstellungsleitfaden für frameworkabhängige gepackte Apps.
Wichtige Einschränkungen:
- Der .NET-Wrapper für die Bootstrapper-API ist nur für die Verwendung durch nicht gepackte .NET-Anwendungen vorgesehen, um den Zugriff auf das Windows App SDK zu vereinfachen.
- Nur mit MSIX gepackte Apps, die vollständig vertrauenswürdig sind oder über die eingeschränkte PackageManagement-Funktion verfügen, haben die Berechtigung, die Bereitstellungs-API zum Installieren der Haupt- und Singletonpaketabhängigkeiten zu verwenden. Unterstützung für teilweise vertrauenswürdige gepackte Apps wird in späteren Releases bereitgestellt.
- Wenn Sie eine x86-App, die die DeploymentManager.Initialize-Methode verwendet, per F5 auf einem x64-System testen, stellen Sie sicher, dass zuerst das x64-Framework installiert wird, indem Sie WindowsAppRuntimeInstall.exe ausführen. Andernfalls tritt ein NOT_FOUND-Fehler auf, da Visual Studio das x64-Framework nicht bereitstellt, was normalerweise durch Store-Bereitstellung oder Querladen erfolgt.
App-Lebenszyklus
Die meisten App-Lebenszyklusfeatures sind bereits auf der UWP-Plattform vorhanden und wurden zur Verwendung durch Desktop-App-Typen in das Windows App SDK integriert, insbesondere durch nicht gepackte Konsolen-Apps, Win32-Apps, Windows Forms-Apps und WPF-Apps. Die Windows App SDK-Implementierung dieser Features kann nicht in UWP-Apps verwendet werden, da es entsprechende Features auf der UWP-Plattform selbst gibt.
Nicht-UWP-Apps können auch als MSIX-Pakete gepackt werden. Diese Apps können zwar einige der App-Lebenszyklusfeatures des Windows App SDK verwenden, müssen jedoch den Manifestansatz verwenden, sofern dieser verfügbar ist. Beispielsweise können sie die RegisterForXXXActivation-APIs des Windows App SDK nicht verwenden und müssen sich stattdessen für die umfassende Aktivierung über das Manifest registrieren.
Alle Einschränkungen für gepackte Apps gelten auch für WinUI 3-Apps, die gepackt sind, und es müssen einige zusätzliche Aspekte bedacht werden, wie unten beschrieben.
Wichtige Überlegungen:
Umfassende Aktivierung: GetActivatedEventArgs
- Nicht gepackte Apps: Vollständig verwendbar.
- Gepackte Apps: Verwendbar, aber diese Apps können auch die
GetActivatedEventArgs
der Plattform verwenden. Beachten Sie, dass die Plattform Windows.ApplicationModel.AppInstance definiert, während das Windows App SDK Microsoft.Windows.AppLifecycle.AppInstance definiert. Und während UWP-Apps dieActivatedEventArgs
-Klassen wieFileActivatedEventArgs
undLaunchActivatedEventArgs
verwenden können, müssen Apps, die das AppLifecycle-Feature des Windows App SDK nutzen, die Schnittstellen verwenden, nicht die Klassen (z. B.IFileActivatedEventArgs
,ILaunchActivatedEventArgs
usw.). - WinUI 3-Apps: App.OnLaunched von WinUI 3 empfängt eine Microsoft.UI.Xaml.LaunchActivatedEventArgs-Klasse, während die Plattform-
GetActivatedEventArgs
eine Windows.ApplicationModel.IActivatedEventArgs-Schnittstelle zurückgibt. WindowsAppSDK-GetActivatedEventArgs
gibt ein Microsoft.Windows.AppLifecycle.AppActivationArguments-Objekt zurück, das eineLaunchActivatedEventArgs
-Plattformklasse darstellen kann. - Weitere Informationen finden Sie unter Umfassende Aktivierung.
Registrieren/Aufheben der Registrierung für die umfassende Aktivierung
- Nicht gepackte Apps: Vollständig verwendbar.
- Gepackte Apps: Nicht verwendbar. Verwenden Sie stattdessen das MSIX-Manifest der App.
- Weitere Informationen finden Sie unter Umfassende Aktivierung.
Einzel-/Mehrfachinstanziierung
- Nicht gepackte Apps: Vollständig verwendbar.
- Gepackte Apps: Vollständig verwendbar.
- WinUI 3-Apps: Wenn eine App andere Instanzen erkennen und eine Aktivierung umleiten soll, muss sie dies so früh wie möglich und vor der Initialisierung von Fenstern usw. tun. Um dies zu ermöglichen, muss die App DISABLE_XAML_GENERATED_MAIN definieren und eine benutzerdefinierte Main (C#) oder WinMain (C++) schreiben, in der sie die Erkennung und Umleitung durchführen kann.
- RedirectActivationToAsync ist ein asynchroner Aufruf, und auf einen asynchronen Aufruf sollte nicht gewartet werden, wenn Ihre App in einem STA ausgeführt wird. Bei Windows Forms- und C#-WinUI 3-Apps können Sie Main bei Bedarf als asynchron deklarieren. Bei C++-WinUI 3- und C#-WPF-Apps können Sie Main nicht als asynchron deklarieren. Stattdessen müssen Sie den Umleitungsaufruf an einen anderen Thread verschieben, um sicherzustellen, dass Sie das STA nicht blockieren.
- Weitere Informationen finden Sie unter App-Instanziierung.
Benachrichtigungen zu Energieversorgung/Zustand
- Nicht gepackte Apps: Vollständig verwendbar.
- Gepackte Apps: Vollständig verwendbar.
- Weitere Informationen finden Sie unter Energieverwaltung.
Bekanntes Problem:
Dateitypzuordnungen codieren „%1“ fälschlicherweise als „%251“, wenn die Befehlszeilenvorlage des Verb-Handlers festgelegt wird, wodurch ungepackte Win32-Apps abstürzen. Sie können das Problem teilweise umgehen, indem Sie den Registrierungswert manuell auf „%1“ festlegen. Wenn der Zieldateipfad ein Leerzeichen enthält, tritt weiterhin ein Fehler auf, und für dieses Szenario gibt es keine Problemumgehung.
Weitere Einschränkungen und bekannte Probleme
Version 1.0 Vorschau 1 und Vorschau 2 enthalten einen kritischen Bug. Wenn Sie bereits eine dieser Vorschauversionen installiert haben, verweisen wir Sie auf Informationen zum Beheben des Problems. Wir empfehlen stattdessen die Verwendung von Version 1.0 Vorschau 3.
In diesem Release werden die Vorlagen Leere App, gepackt (WinUI 3 in Desktop) für C#- und C++-Projekte eingeführt. Diese Vorlagen ermöglichen Ihnen die Aufnahme Ihrer App in ein MSIX-Paket ohne Verwendung eines separaten Paketerstellungprojekts. Diese Vorlagen haben einige bekannte Probleme in diesem Release:
C#-Vorlage für Visual Studio 2019. Beim Versuch, das Projekt zu erstellen, tritt der Fehler „Das Projekt weiß nicht, wie das Profil Projektname auszuführen ist“ auf. Installieren Sie zum Beheben dieses Problems die Erweiterung zu MSIX-Paketerstellungstools für Einzelprojekte.
C#-Vorlage für Visual Studio 2019 und Visual Studio 2022. Es tritt der folgende Fehler auf, wenn Sie versuchen, Ihr Projekt auf Ihrem Entwicklungscomputer auszuführen oder zu debuggen: „Das Projekt muss vor dem Debuggen bereitgestellt werden. Aktivieren Sie „In Configuration Manager bereitstellen“. Aktivieren Sie die Bereitstellung für Ihr Projekt im Configuration Manager, um dieses Problem zu beheben. Ausführliche Anweisungen finden Sie unter Erstellen Ihres ersten WinUI 3-Projekts.
C++-Vorlage für Visual Studio 2019 und Visual Studio 2022. In diesem Release sind diese Projekte auf das Aufrufen der Teilmenge von Win32-APIs beschränkt, die von UWP-Apps aufgerufen werden können. Die Vorlage Leere App, gepackt mit WAP (WinUI 3 in Desktop) ist von diesem Problem nicht betroffen.
C++-Vorlage für Releases von Visual Studio 2022, Version 17.0 bis Vorschau 4. Beim ersten Versuch, das Projekt auszuführen, tritt der folgende Fehler auf: „Es gab Bereitstellungsfehler“. Zum Beheben dieses Problems müssen Sie Ihr Projekt ein zweites Mal ausführen oder bereitstellen. Das Problem wird in Visual Studio 2022, Version 17.0 Preview 5, behoben.
Die Pushbenachrichtigungs-API (Microsoft.Windows.PushNotifications-Namespace) ist im Release 1.0 Vorschau 2 fälschlicherweise enthalten. Dies handelt sich immer noch um ein experimentelles Feature, für dessen Verwendung Sie stattdessen das experimentelle Release 1.0 installieren müssen. Dieses Feature wird im bevorstehenden Release 1.0 entfernt.
Die App-Lebenszyklus-API (Microsoft.Windows.AppLifecycle-Namespace) enthält fälschlicherweise das Attribut „experimentell“ im Release 1.0 Vorschau 2. Das Attribut „experimentell“ wird im nächsten Release aus dieser API entfernt.
Keine Unterstützung für Buildkonfigurationen mit „Beliebige CPU“: Beim Hinzufügen des Windows App SDK zu einer vorhandenen .NET-Anwendung oder -Komponente, die Beliebige CPU unterstützt, müssen Sie die gewünschte Architektur angeben:
x86
,x64
oderarm64
.C#-Projekte mit 1.0 Vorschau 2 müssen das folgende .NET SDK verwenden: .NET 6 SDK oder höher (siehe Herunterladen von .NET und .NET 5 erreicht das Ende des Supports am 10. Mai 2022).
Eine Alternative zu DispatcherQueue.TryEnqueue (zum Fortsetzen der Ausführung im Warteschlangenthread des Verteilers) besteht darin, die resume_foreground-Hilfsfunktion in der Windows Implementation Library (WIL) zu verwenden:
- Fügen Sie dem NuGet-Paket Microsoft.Windows.ImplementationLibrary einen Verweis auf Ihr Projekt hinzu.
- Fügen Sie
#include <wil/cppwinrt_helpers.h>
zupch.h
hinzu. - Fügen Sie
#include <winrt/Microsoft.UI.Dispatching.h>
zupch.h
hinzu. - Jetzt:
co_await wil::resume_foreground(your_dispatcherqueue);
.
Version 1.0 Vorschau 1 (1.0.0-preview1)
Wichtig
Version 1.0 Vorschau 1 und Vorschau 2 enthalten einen kritischen Bug. Wenn Sie bereits eine dieser Vorschauversionen installiert haben, verweisen wir Sie auf Informationen zum Beheben des Problems. Wir empfehlen stattdessen die Verwendung von Version 1.0 Vorschau 3.
Das ist das erste Release des Vorschaukanals für Version 1.0. Es unterstützt alle Features des Vorschaukanals.
In den folgenden Abschnitten werden neue und aktualisierte Features, Einschränkungen und bekannte Probleme für diese Version beschrieben.
WinUI 3
Dieses Release von WinUI 3 konzentriert sich auf die Weiterentwicklung von 1.0 mit Programmfehlerbehebungen.
- Neue Features: Keine neuen Features in Vorschau 1.
- Behobene Probleme: Eine vollständige Liste der in diesem Release behobenen Probleme finden Sie in unserem GitHub-Repository.
Weitere Informationen sowie die erste Schritte zur Entwicklung mit WinUI 3 finden Sie unter:
Windowing
Dieses Release versetzt die in der experimentellen Version 1 eingeführte Windowing-API in einen Vorschaustatus. Es gibt keine wichtigen neuen Features in diesem Release, da es sich auf Programmfehlerbehebungen, Stabilität und Anpassungen der API-Signatur konzentriert. Die beachtenswerten Änderungen und Ergänzungen sind unten aufgeführt.
Neue Features:
- DisplayAreaWatcher wurde zu den Windowing-APIs hinzugefügt. Sie ermöglicht es Entwickler*innen Änderungen in der Anzeigetopologie zu beobachten und DisplayAreas zu enumerieren, die derzeit im System definiert sind.
- AppWindow unterstützt jetzt das Festlegen des Fenstersymbols über die SetIcon-Methode, und AppWindowTitleBar unterstützt jetzt die Auswahlmöglichkeit, das Fenstersymbol zusammen mit dem Systemmenü über die Eigenschaft IconShowOptions ein- oder auszublenden.
Wichtige Einschränkungen:
- Dieses Release von AppWindows ist derzeit nur für Win32-Apps verfügbar (sowohl gepackt als auch ungepackt).
- Das Windows App SDK verfügt derzeit über keine Methoden zum Anfügen von UI-Framework-Inhalten an AppWindow. Sie sind auf die Verwendung der Interop-Zugriffsmethoden beschränkt.
- Die Anpassung der Fenstertitelleiste funktioniert nur unter Windows 11. Prüfen Sie mit der IsCustomizationSupported-Methode, ob das Feature zur Anpassung der Titelleiste unterstützt wird. Wir planen die Vereinheitlichung dieser Funktionalität mit älteren Versionen.
Weitere Informationen finden Sie unter Verwalten von App-Fenstern.
Eingabe
Dieses Release verfügt über einige neue Features für die Eingabe-API. Die beachtenswerten Änderungen und Ergänzungen sind unten aufgeführt.
Neue Features und Updates:
- PointerPredictor bietet den für die Eingabelatenz empfindlichen Anwendungen wie Freihandanwendungen die Möglichkeit, Eingabepunktpositionen für bis zu 15 ms in der Zukunft vorherzusagen, um eine bessere Latenz und reibungslose Animation zu erzielen.
- Mit PenDeviceInterop können Sie mit der FromPointerPoint-Methode einen Verweis auf Windows.Devices.Input.PenDevice abrufen.
- InputCursor ermöglicht eine explizite Unterscheidung zwischen voreingestellten Systemcursortypen und benutzerdefinierten Cursortypen, indem der in
CoreCursor
vorhandene Typ „Custom“ entfernt und das ObjektCoreCursor
in separate Objekte aufgeteilt wird. - Aktualisierungen für InputCursor-APIs.
- GestureRecognizer wurde aus dem experimentellen Status zu Microsoft.UI.Input verlagert.
- PointerPoint wurde aus dem experimentellen Status zu Microsoft.UI.Input verlagert.
- Maus-, Touch- und Stifteingaben werden für WinUI 3-Drag & Drop vollständig unterstützt.
Wichtige Einschränkungen:
- Dieses Release von Eingabe-APIs hat bekannte Probleme mit Windows Version 1809.
- MRT Core wird von den Untertypen von InputCursor noch nicht unterstützt.
- Die direkte Verwendung der Plattform-SDK-API Windows.UI.Core.CoreDragOperation funktioniert mit WinUI 3-Anwendungen nicht.
- Die PointerPoint-Eigenschaften RawPosition und ContactRectRaw wurden entfernt, da sie auf nicht vorhergesagte Werte verwiesen, die den normalen Werten im Betriebssystem entsprachen. Verwenden Sie stattdessen Position und ContactRect. Die Zeigervorhersage wird jetzt mit dem API-Objekt Microsoft.UI.Input.PointerPredictor verarbeitet.
MRT Core
Ab Version 1.0 Vorschau 1 wurden MRT-Core-APIs vom Namespace Microsoft.ApplicationModel.Resources zum Namespace Microsoft.Windows.ApplicationModel.Resources verlagert.
Weitere Einschränkungen und bekannte Probleme
Version 1.0 Vorschau 1 und Vorschau 2 enthalten einen kritischen Bug. Wenn Sie bereits eine dieser Vorschauversionen installiert haben, verweisen wir Sie auf Informationen zum Beheben des Problems. Wir empfehlen stattdessen die Verwendung von Version 1.0 Vorschau 3.
Bei Projekten, die mit der C++-Projektvorlage Leere App, gepackt mit WAP (WinUI 3 in Desktop) erstellt wurden, trotz standardmäßig der folgende Buildfehler auf:
fatal error C1083: Cannot open include file: 'winrt/microsoft.ui.dispatching.co_await.h': No such file or directory
. Entfernen Sie zum Beheben dieses Problems die folgende Codezeile aus der Datei pch.h. Dieses Problem wird im nächsten Release behoben.#include <winrt/microsoft.ui.dispatching.co_await.h>
Eine Alternative zu DispatcherQueue.TryEnqueue (zum Fortsetzen der Ausführung im Warteschlangenthread des Verteilers) besteht darin, die resume_foreground-Hilfsfunktion in der Windows Implementation Library (WIL) zu verwenden:
- Fügen Sie dem NuGet-Paket Microsoft.Windows.ImplementationLibrary einen Verweis auf Ihr Projekt hinzu.
- Fügen Sie
#include <wil/cppwinrt_helpers.h>
zupch.h
hinzu. - Fügen Sie
#include <winrt/Microsoft.UI.Dispatching.h>
zupch.h
hinzu. - Jetzt:
co_await wil::resume_foreground(your_dispatcherqueue);
.
Keine Unterstützung für eine CPU-Buildkonfiguration: Das Windows App SDK ist in systemeigenem Code geschrieben und unterstützt somit keine CPU-Buildkonfigurationen . Die WinUI 3-Vorlagen in Visual Studio lassen nur architekturspezifische Builds zu. Beim Hinzufügen des Windows App SDK zu einer vorhandenen .NET-Anwendung oder -Komponente, die Beliebige CPU unterstützt, müssen Sie die gewünschte Architektur angeben:
x86
,x64
oderarm64
..NET-Apps müssen auf Build 18362 oder höher ausgerichtet sein: Ihr TFM muss auf
net6.0-windows10.0.18362
oder höher festgelegt sein, und die<TargetPlatformVersion>
Ihres Paketprojekts muss auf 18362 oder höher festgelegt sein. Weitere Informationen finden Sie in diesem bekannten Issue auf GitHub.C#-Projekte mit 1.0 Vorschau 1 müssen das folgende .NET SDK verwenden: .NET 6 SDK oder höher (siehe Herunterladen von .NET und .NET 5 erreicht das Ende des Supports am 10. Mai 2022).
Unter Windows 10, Version 1809 nicht unterstützte ungepackte Apps: Dies sollte im nächsten Release behoben werden.
Zugehörige Themen
Windows developer
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für