Windows 应用 SDK 的最新试验通道发行说明

重要

不支持在生产环境中使用试验通道,并且无法将使用试验版本的应用发布到 Microsoft Store

此试验通道包含 Windows 应用 SDK 的多个版本,其中附带了处于开发早期阶段的试验通道功能。 用于试验功能的 API 具有试验特性。 如果在代码中调用试验 API,会收到生成时警告。 试验通道中的所有 API 均可能出现大量修订和重大更改。 试验功能和 API 可随时从后续版本中删除。

重要链接

版本 2.0 实验版(2.0.0-Experimental3)

将设备上的 AI 与 Windows AI API 配合使用

重要

这些 API 所需的基础 ML 模型当前要求您的设备目前在开发通道上运行最新版的 Windows 11 内部预览版。 此外,这些 API 要求您的设备需为 Copilot+ 电脑。 请参阅 Copilot+ 电脑开发人员指南 了解有关这些设备的详细信息。 在缺少必要支持的设备上调用 API 时,API 将引发异常。

Windows 应用 SDK 包含高级 Windows AI 功能,使开发人员能够将智能功能无缝集成到其应用程序中。 这些增强功能包括本地 AI 功能,例如响应传入的提示、识别图像中的文本、描述图像内容、从图片中提取对象等。

有关在创建 Windows AI API 期间利用的负责任的开发实践的信息,在创建 AI 辅助功能时也可以应用这些做法,请参阅 在 Windows 上开发负责任的生成 AI 应用程序和功能 指南。

此版本包括以下新的和经过修改的实验 API:

错误修复:

  • 修复了旋转文本时的边界框计算。 在某些情况下,当文本旋转时,图像中的 OCR 文本匹配可能导致不准确或空的区域边界。

Windows ML 更新

重命名的类型

  • 已将 WinMLCatalogModel 重命名为 ModelCatalog
  • 已将 CatalogModelSource 重命名为 ModelCatalogSource

方法更新

  • CatalogModelInfo:已 GetInstance 重命名为 GetInstanceAsync
  • ModelCatalogSource:已 CreateFromUri 重命名为 CreateFromUriAsync
  • ModelCatalog:已 FindModel 重命名为 FindModelAsync
  • ModelCatalog:已 FindAllModels 重命名为 FindAllModelsAsync

属性更改

  • 已更新 CatalogModelInfo.SizeCatalogModelInfo.ModelSizeInBytes

行为更新

  • CatalogModelInstanceResult 使用 .GetInstance() 检索实例
  • CatalogModelStatus 现在基于本地可用性返回 Ready 或 NotReady
  • 为将实例状态与模型状态分开,已添加CatalogModelInstanceStatus

CatalogModelInfo 功能增强

  • 已将 Alias 重命名为 Name
  • 已将 Revision 重命名为 Version
  • 添加了 Publisher
  • 已删除 DisplayName

JSON 更改

  • alias 重命名为 id
  • 已删除 modelTypedescription
  • executionProvider 重命名为 executionProviders
  • 更新 executionProviders 为 JSON 对象的数组,而不是逗号分隔的列表。

其他更改

  • ModelCatalog 创建实例时,现在返回执行提供程序(EP)的列表。
  • 添加了对 Windows 10(1809)及更高版本的支持。
  • 添加了对本地文件的支持,包括常规文件和 MSIX 包。
  • 修复了目录 JSON 无效导致的崩溃。

AppContentIndexer 更新

  • 之前的AppIndexQuery类型包含GetNextTextMatchesGetNextImageMatches方法,现已拆分为两个不同的类型:AppIndexTextQueryAppIndexImageQuery。 方法 AppContentIndexer.CreateQuery 已被替换为: CreateTextQueryCreateImageQuery

  • 这些方法现在分别返回 AppIndexTextQueryAppIndexImageQuery。 为了简化使用,选项类型也已更新:

    • 已删除: AppIndexQueryOptionsTextMatchOptionsImageMatchOptions
    • 添加了: TextQueryOptionsImageQueryOptions
  • 以前返回的数组的 AppContentIndex 命名空间中的 API 现在返回 IVectorView 以提高一致性和性能。

  • 方法 AppContentIndexer.WaitForIndexingIdleAsync 已更新为接受 TimeSpan 参数而不是整数,从而提供更清晰、更灵活的超时处理。

视频超分辨率人工智能应用编程接口

VideoScaler API 通过先进的 AI 升频技术提供实时视频增强功能,并针对涉及人物对话的流进行了优化。 它使开发人员能够在会议、流式处理和编辑平台之间提供更清晰、更清晰的视觉对象,即使在网络条件不佳的情况下也是如此。 API 支持自定义输出分辨率、帧速率和感兴趣的区域,并与多种视频格式(包括 BGR、RGB 和 NV12)兼容。

Windows AI 文本重写器音调

使用新的 RewriteCustomAsync API,可以提供一个输入字符串,用于指导 Phi 硅重写所选文本。 你可以试验新的创意风格,如“Goofy”或“海盗”,以立即转换你的内容。

适用于精简功能的新拆分菜单项

新的实验性 SplitMenuFlyoutItem 控件旨在提供菜单弹出中的拆分按钮功能。 此控件将使开发人员能够公开默认的主要作,同时通过子菜单提供其他选项,非常适合将复杂功能压缩为更小的占用空间并节省整体菜单长度。

除了 MenuFlyoutItem 和 MenuFlyoutSubItem 的功能外,该控件还附带了另外两个属性: SubMenuPresenterStyle 并允许 SubMenuItemStyle自定义子菜单,例如对子菜单演示者使用 GridView。

    <Button Text="Open File Button">
        <Button.Flyout>
            <MenuFlyout>
                <SplitMenuFlyoutItem Text="Open with Notepad">
                    <MenuFlyoutItem Text="Visual Studio" />
                    <MenuFlyoutItem Text="VS Code" />
                    <MenuFlyoutItem Text="Wordpad" />
                </SplitMenuFlyoutItem>
            </MenuFlyout>
        </Button.Flyout>
    </Button>

AI 图像生成

ImageGenerator 类利用稳定扩散模型提供强大的图像生成功能。 它支持多个生成方案:

  • 文本到图像: 从描述性文本提示生成图像。

  • 图像到图像: 基于文本描述转换现有图像。

  • 魔术填充: 使用 AI 生成的内容填充图像的屏蔽区域。

  • 着色书样式: 生成着色书样式的图像。

  • Restyle: 更改现有图像的艺术风格,同时保留结构。

所有生成的图像都通过 ImageBuffer 对象以 RGB8 格式返回。 该 API 包括内置 内容安全筛选器 ,并支持可自定义的生成参数。

基本文本到图像生成

using Microsoft.Windows.AI.Imaging;
using Microsoft.Graphics.Imaging;
 
public async Task GenerateImageFromText()
{
    var readyState = ImageGenerator.GetReadyState();
    if (readyState != AIFeatureReadyState.Ready)
    {
        var progress = new Progress<double>(p => Console.WriteLine($"Download progress: {p:P}"));
        var result = await ImageGenerator.EnsureReadyAsync();
        if (result.Status != AIFeatureReadyResultState.Success)
        {
            Console.WriteLine("Failed to prepare models");
            return;
        }
    }
 
    using var generator = await ImageGenerator.CreateAsync();
 
    var options = new ImageGenerationOptions
    {
        MaxInferenceSteps = 6,
        Creativity = 0.8,
        Seed = 42
    };
 
    var result = generator.GenerateImageFromTextPrompt("A beautiful sunset over a mountain lake", options);
 
    if (result.Status == ImageGeneratorResultStatus.Success)
    {
        await SaveImageBufferAsync(result.Image, "generated_image.png");
    }
}

适用于 2.0-experimental3 的新 API

与 2.0-experimental2 相比,此版本包括以下新的和经过修改的实验 API:

Microsoft.Graphics.Imaging

    ImageBufferPixelFormat
        Bgr8
Microsoft.UI.Xaml.Automation.Peers

    SplitMenuFlyoutItemAutomationPeer
Microsoft.UI.Xaml.Controls

    SplitMenuFlyoutItem
Microsoft.Windows.AI.Imaging

    ImageFromImageGenerationOptions
    ImageFromImageGenerationStyle
    ImageFromTextGenerationOptions
    ImageFromTextGenerationStyle
    ImageGenerationOptions
    ImageGenerator
    ImageGeneratorContract
    ImageGeneratorResult
    ImageGeneratorResultStatus
    TextRecognizer
        RecognizeTextFromImage
        RecognizeTextFromImageAsync

    TextRecognizerOptions
Microsoft.Windows.AI.MachineLearning

    CatalogModelInfo
    CatalogModelInstance
    CatalogModelInstanceResult
    CatalogModelInstanceStatus
    CatalogModelStatus
    ModelCatalog
    ModelCatalogSource
Microsoft.Windows.AI.Search.Experimental.AppContentIndex

    AppContentIndexer
        CreateImageQuery
        CreateTextQuery
        WaitForIndexingIdleAsync

    AppIndexImageQuery
    AppIndexTextQuery
    ImageQueryOptions
    TextQueryOptions
Microsoft.Windows.AI.Text

    TextRewriter
        RewriteCustomAsync
Microsoft.Windows.AI.Video

    ScaleFrameStatus
    VideoScaler
    VideoScalerOptions
    VideoScalerResult

版本 2.0 实验版(2.0.0-Experimental2)

重要

如果以前安装了 Windows 应用 SDK 2.0 实验版 1,请按照 NuGet 卸载指南从项目中删除 NuGet Microsoft.WindowsAppSDK 元包,并在尝试此新版本之前从该版本中删除2.0.250930001-experimental1关联的 WinAppSDK 组件包,因为以前发布的实验包的版本号高于当前版本。

AppContentIndexer API 使开发人员能够有效地为应用内容编制索引,包括文本和图像,以便快速相关检索。 支持词法(基于关键字)和语义(基于含义)搜索,这些 API 允许应用基于用户意向和上下文快速提供相关结果,而不仅仅是确切的关键字。

此功能可解锁以下高级方案:

  • 语义搜索
    应用可以基于意图和含义返回结果,而不是确切的关键字匹配项。
    例:项目时间线” 的查询可以显示提及 “schedule”“delivery date”的内容, 即使未使用这些确切字词也是如此。
  • 增强型检索生成 (RAG)
    索引内容可用作生成 AI 模型的知识库。 当用户提出问题时,应用会从索引中检索最相关的文档或代码片段,并将其馈送到模型中,从而实现以真实数据为底的准确上下文感知响应。

Windows ML 模型目录

Windows ML 模型目录 API 使应用或库能够从自己的联机模型目录动态发现和下载大型 AI 模型文件,而无需将这些大型文件直接打包到应用或库。 模型目录通过筛选模型并仅下载适用于正在使用的特定 Windows 设备的模型来帮助确保设备兼容性。

持久文件和文件夹位置

最新 Microsoft.Windows.Storage.Pickers 更新通过让开发人员设置初始文件夹和永久性文件夹位置,以及使用清晰的标签对文件类型筛选器进行分组来简化文件和文件夹选择,以便于导航。

相对弹出窗口定位

API PopupAnchor 现在允许通过 DesktopPopupSiteBridge 定位到自己的窗口或岛来支持相对定位,从而解决弹出窗口只能使用屏幕坐标绝对定位的限制。

SystemVisual ContentIslands 的输入路由

API InputUnderlyingWindowController 允许开发人员指定目标 HWND,以接收原本发送给由 SystemVisual 创建的 ContentIsland 的输入消息(详见 ContentIsland.CreateForSystemVisual)。

灵活性系统背景布局

SystemBackdropHost 允许在应用程序的可视化树中的任意位置放置系统背景(亚克力/mica)。

XAML 布局顺序定位

WrapPanel是一个 WinUI XAML 布局面板,它将子元素按照从左到右的顺序排列。当项目溢出行时,将在包含面板的边缘自动换行到下一行。 它适用于响应式布局。

这是现有 Windows 社区工具包控件的端口。

适用于 2.0-experimental2 的新 API

与 2.0-experimental1 相比,此版本包括以下新的和经过修改的实验 API:

Microsoft.UI.Content

    PopupAnchor
Microsoft.UI.Input

    InputUnderlyingWindowController
Microsoft.UI.Xaml.Controls

    StretchChild
    SystemBackdropHost
    WrapPanel
Microsoft.Windows.AI.Imaging

    ImageForegroundExtractor
    ImageForegroundExtractorContract
Microsoft.Windows.AI.Search.Experimental.AppContentIndex

    AppContentIndexContract
    AppContentIndexer
    AppContentIndexListener
    AppIndexContentRegion
    AppIndexQuery
    AppIndexQueryMatch
    AppIndexQueryOptions
    AppIndexTextStreamEncoding
    AppManagedImageQueryMatch
    AppManagedIndexableAppContent
    AppManagedTextQueryMatch
    ContentItemReader
    ContentItemStatus
    ContentItemStatusResult
    ContentRegionTextOptions
    DeleteIndexResult
    DeleteIndexStatus
    DeleteIndexWhileInUseBehavior
    GetOrCreateIndexOptions
    GetOrCreateIndexResult
    GetOrCreateIndexStatus
    ImageMatchOptions
    ImageQueryMatch
    IndexableAppContent
    IndexCapabilities
    IndexCapabilitiesOfCurrentSystem
    IndexCapability
    IndexCapabilityInitializationStatus
    IndexCapabilityLanguageStatus
    IndexCapabilityOfCurrentSystemStatus
    IndexCapabilityRequirement
    IndexCapabilityState
    IndexStatistics
    QueryMatchContentKind
    QueryMatchScope
    RegionContentKind
    TextLexicalMatchType
    TextMatchOptions
    TextQueryMatch
Microsoft.Windows.AI.Text.Experimental

    LanguageModelExperimental
    LanguageModelExperimentalContract
    LanguageModelOptionsExperimental
    LowRankAdaptation
Microsoft.Windows.Storage.Pickers

    FileOpenPicker
        FileTypeChoices
        SuggestedFolder
        SuggestedStartFolder

    FileSavePicker
        SuggestedStartFolder

    FolderPicker
        SuggestedFolder
        SuggestedStartFolder

已知问题

  • AppContentIndexer 应从后台线程调用 API。 在用户界面线程中使用它可能会挂起或导致长时间暂停,从而影响用户体验。
  • 使用AppIndexQuery.GetNextTextMatchesAppIndexQuery.GetNextImageMatches查询结果时,如果没有匹配项,则结果为 null,而非空列表。
  • 根据 OCR 值使用 AppManagedImageQueryMatch.Subregion 的图像匹配有时可能不准确,尤其是在文本旋转或倾斜时。
  • 使用 AppManagedImageQueryMatch.Subregion 的图像匹配有时可能包括零大小或极小的矩形,从而导致结果不准确。
  • AppContentIndex.CreateQuery 查询可能会引发异常。

版本 2.0 实验版 (2.0.0-Experimental1)

将设备上的 AI 与 Windows AI API 配合使用

重要

这些 API 所需的基础 ML 模型当前要求您的设备目前在开发通道上运行最新版的 Windows 11 内部预览版。 此外,这些 API 要求您的设备需为 Copilot+ 电脑。 请参阅 Copilot+ 电脑开发人员指南 了解有关这些设备的详细信息。 在缺少必要支持的设备上调用 API 时,API 将引发异常。

Windows 应用 SDK 包含高级 Windows AI 功能,使开发人员能够将智能功能无缝集成到其应用程序中。 这些增强功能包括本地 AI 功能,例如响应传入的提示、识别图像中的文本、描述图像内容、从图片中提取对象等。

有关在创建 Windows AI API 期间利用的负责任的开发实践的信息,在创建 AI 辅助功能时也可以应用这些做法,请参阅 在 Windows 上开发负责任的生成 AI 应用程序和功能 指南。

Microsoft Windows ML

Windows ML 模型目录 API 允许应用或库从自己的联机模型目录动态下载大型 AI 模型文件,而无需将这些大型文件直接寄送到应用或库。 此外,模型目录将帮助筛选其正在运行的 Windows 设备兼容的模型,以便将正确的模型下载到设备。

主要优势:

  • 添加目录:添加一个或多个联机目录
  • 发现兼容的模型:自动查找适用于用户硬件和执行提供程序的模型
  • 下载模型:从各种源下载和存储模型
  • 跨应用共享模型:如果多个应用程序使用相同的目录源,则模型将在磁盘上共享,而不会复制下载

漏洞修复

  • 修复了 DeploymentManager 中导致在某些情况下错误报告 PackageInstallRequired 的问题。

适用于 2.0 版 1 号实验的新 API

此版本包括以下新的和经过修改的实验 API:

Microsoft.UI.Composition

    CompositionNotificationDeferral
    CompositionProjectedShadow
        MaxOpacity
        MinOpacity
        OpacityFalloff

    CompositionProjectedShadowCaster
        AncestorClip
        Mask

    CompositionProjectedShadowDrawOrder
    CompositionProjectedShadowReceiver
        DrawOrder
        Mask
Microsoft.UI.Composition.Experimental

    ExpCompositionVisualSurface
    ExpExpressionNotificationProperty
    IExpCompositionPropertyChanged
    IExpCompositionPropertyChangedListener
    IExpCompositor
    IExpVisual
Microsoft.UI.Content

    ChildSiteLink
        IsBelowContent

    ContentAppWindowBridge
    ContentDisplayOrientations
    ContentExternalBackdropLink
    ContentExternalOutputLink
    ContentIsland
        Connected
        ConnectionInfo
        ConnectRemoteEndpoint
        Disconnected
        IsRemoteEndpointConnected
        Root

    ContentIslandEnvironment
        CurrentOrientation
        NativeOrientation
        ThemeChanged

    ContentSite
        TryGetAutomationProvider

    ContentSiteEnvironment
        CurrentOrientation
        NativeOrientation
        NotifyThemeChanged

    CoreWindowSiteBridge
    CoreWindowTopLevelWindowBridge
    DesktopChildSiteBridge
        AcceptRemoteEndpoint
        ConnectionInfo
        IsRemoteEndpointConnected
        RemoteEndpointConnecting
        RemoteEndpointDisconnected
        RemoteEndpointRequestedStateChanged

    DesktopPopupSiteBridge
        AnchoringBehavior
        AnchoringPixelAlignment

    DesktopSiteBridge
        TryCreatePopupSiteBridge

    EndpointConnectionEventArgs
    EndpointRequestedStateChangedEventArgs
    IContentIslandEndpointConnectionPrivate
    IContentSiteBridgeEndpointConnectionPrivate
    PopupAnchoringOptions
    PopupWindowSiteBridge
    ProcessStarter
    SystemVisualSiteBridge
Microsoft.UI.Input

    InputKeyboardSource
        GetForWindowId

    InputLayoutPolicy
    InputLightDismissAction
        GetForIsland

    InputLightDismissEventArgs
    InputPointerActivationBehavior
    InputPointerSource
        ActivationBehavior
        DirectManipulationHitTest
        GetForVisual
        GetForWindowId
        RemoveForVisual
        TouchHitTesting
        TrySetDeviceKinds

    InputPopupController
    LightDismissReason
    PopupPointerMode
    ProximityEvaluation
    TouchHitTestingEventArgs
Microsoft.UI.Input.Experimental

    ExpInputSite
    ExpPointerPoint
Microsoft.UI.Windowing

    AppWindow
        GetCurrentPlacement
        PersistedStateId
        PlacementRestorationBehavior
        SaveCurrentPlacement
        SaveCurrentPlacementForAllPersistedStateIds
        SetCurrentPlacement

    AppWindowPlacementDetails
    DisplayArea
        GetMetricsFromWindowId

    PlacementInfo
    PlacementRestorationBehavior
Microsoft.UI.Xaml

    XamlIsland
        ShouldConstrainPopupsToWorkArea
Microsoft.UI.Xaml.Automation.Peers

    AutomationEvents
        Notification

    InkCanvasAutomationPeer
    PagerControlAutomationPeer
Microsoft.UI.Xaml.Controls

    ContentDialogPlacement
        UnconstrainedPopup

    DoInkPresenterWork
    ElementFactory
    FlowLayout
    FlowLayoutAnchorInfo
    FlowLayoutLineAlignment
    FlowLayoutState
    IApplicationViewSpanningRects
    IndexPath
    InfoBar
        Opened

    InfoBarOpenedEventArgs
    InkCanvas
    ISelfPlayingAnimatedVisual
    ItemContainer
        CanUserInvoke
        CanUserInvokeProperty
        CanUserSelect
        CanUserSelectProperty
        ItemInvoked
        MultiSelectMode
        MultiSelectModeProperty

    ItemContainerInteractionTrigger
    ItemContainerInvokedEventArgs
    ItemContainerMultiSelectMode
    ItemContainerUserInvokeMode
    ItemContainerUserSelectMode
    LayoutPanel
    NumberBox
        InputScope
        InputScopeProperty
        TextAlignment
        TextAlignmentProperty

    PagerControl
    PagerControlButtonVisibility
    PagerControlDisplayMode
    PagerControlSelectedIndexChangedEventArgs
    PagerControlTemplateSettings
    ProgressRing
        DeterminateSource
        DeterminateSourceProperty
        IndeterminateSource
        IndeterminateSourceProperty

    RecyclePool
    RecyclingElementFactory
    ScrollingScrollStartingEventArgs
    ScrollingZoomStartingEventArgs
    ScrollView
        ScrollStarting
        ZoomStarting

    SelectionModel
    SelectionModelChildrenRequestedEventArgs
    SelectionModelSelectionChangedEventArgs
    SelectTemplateEventArgs
    StackLayout
        IsVirtualizationEnabled
        IsVirtualizationEnabledProperty

    StackLayoutState
    TeachingTip
        Opened

    TeachingTipOpenedEventArgs
    UniformGridLayoutState
Microsoft.UI.Xaml.Controls.Primitives

    ScrollPresenter
        ScrollStarting
        ZoomStarting
Microsoft.Windows.AI.MachineLearning

    CatalogModelInfo
    CatalogModelInstance
    CatalogModelInstanceResult
    CatalogModelSource
    CatalogModelStatus
    WinMLModelCatalog
Microsoft.Windows.ApplicationModel.WindowsAppRuntime

    DeploymentManager
        Repair

    DeploymentStatus
        PackageRepairFailed
Microsoft.Windows.AppNotifications

    AppNotification
        ConferencingConfig

    AppNotificationConferencingConfig
Microsoft.Windows.AppNotifications.Builder

    AppNotificationBuilder
        AddCameraPreview

    AppNotificationButton
        SetSettingStyle

    AppNotificationButtonSettingStyle
Microsoft.Windows.SemanticSearch

    EmbeddingVector
    SemanticSearchContract
Microsoft.Windows.Storage

    ApplicationData
        GetForUnpackaged
Microsoft.Windows.Vision

    ScreenRegionBoundingBox
    ScreenRegionDetectionContract
    ScreenRegionLabel

存档试验通道发行说明

展开查看实验频道存档版本说明链接