重要
不支持在生产环境中使用试验通道,并且无法将使用试验版本的应用发布到 Microsoft Store。
此试验通道包含 Windows 应用 SDK 的多个版本,其中附带了处于开发早期阶段的试验通道功能。 用于试验功能的 API 具有试验特性。 如果在代码中调用试验 API,会收到生成时警告。 试验通道中的所有 API 均可能出现大量修订和重大更改。 试验功能和 API 可随时从后续版本中删除。
重要链接:
- 如果要将现有应用从较旧版本的 Windows App SDK 升级到较新版本,请参阅将现有项目更新到 Windows App SDK 的最新版本。
- 有关试验版本的文档,请参阅安装 Windows App SDK 的预览和试验通道工具。
版本 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.Size为CatalogModelInfo.ModelSizeInBytes
行为更新
- 从
CatalogModelInstanceResult使用 .GetInstance() 检索实例 -
CatalogModelStatus现在基于本地可用性返回 Ready 或 NotReady - 为将实例状态与模型状态分开,已添加
CatalogModelInstanceStatus
CatalogModelInfo 功能增强
- 已将
Alias重命名为Name - 已将
Revision重命名为Version - 添加了
Publisher - 已删除
DisplayName
JSON 更改
- 已
alias重命名为id。 - 已删除
modelType和description。 - 已
executionProvider重命名为executionProviders。 - 更新
executionProviders为 JSON 对象的数组,而不是逗号分隔的列表。
其他更改
-
ModelCatalog创建实例时,现在返回执行提供程序(EP)的列表。 - 添加了对 Windows 10(1809)及更高版本的支持。
- 添加了对本地文件的支持,包括常规文件和 MSIX 包。
- 修复了目录 JSON 无效导致的崩溃。
AppContentIndexer 更新
之前的
AppIndexQuery类型包含GetNextTextMatches和GetNextImageMatches方法,现已拆分为两个不同的类型:AppIndexTextQuery和AppIndexImageQuery。 方法AppContentIndexer.CreateQuery已被替换为:CreateTextQuery和CreateImageQuery。这些方法现在分别返回
AppIndexTextQuery和AppIndexImageQuery。 为了简化使用,选项类型也已更新:- 已删除:
AppIndexQueryOptionsTextMatchOptions和ImageMatchOptions - 添加了:
TextQueryOptions和ImageQueryOptions
- 已删除:
以前返回的数组的
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.GetNextTextMatches和AppIndexQuery.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