DisplayManager 类

定义

管理 DisplayTarget 对象的所有权,并提供创建 DisplayState 对象的方法。

public ref class DisplayManager sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 458752)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class DisplayManager final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 458752)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class DisplayManager : System.IDisposable
Public NotInheritable Class DisplayManager
Implements IDisposable
继承
Object Platform::Object IInspectable DisplayManager
属性
实现

Windows 要求

设备系列
Windows 10, version 1809 (在 10.0.17763.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v7.0 中引入)

注解

此对象实现 IClosable/IDisposable,在不再使用所有 DisplayTarget 对象后,该对象应用于撤销其所有权。

方法

Close()

撤销此 DisplayManager 实例拥有的所有 DisplayTarget 对象的所有权。

Create(DisplayManagerOptions)

使用指定选项创建 DisplayManager 实例。

CreateDisplayDevice(DisplayAdapter)

为给定适配器创建 DisplayDevice 对象。 DisplayDevice 可用于创建全屏内容并将其呈现给给定适配器上的目标。

CreateDisplayDeviceForIndirectAdapter(DisplayAdapter, DisplayAdapter)

管理 DisplayTarget 对象的所有权,并提供创建 DisplayState 对象的方法。

Dispose()

执行与释放或重置非托管资源关联的应用程序定义的任务。

GetCurrentAdapters()

枚举系统上当前存在的一组显示适配器。

GetCurrentTargets()

枚举系统上当前存在的一组显示目标。

ReleaseTarget(DisplayTarget)

释放指定显示目标的所有权,允许系统上的其他组件获取所有权。

Start()

开始以原子方式侦听所有 DisplayManager 事件。 在你调用 Start 之前,不会引发 DisplayManager 事件。

Stop()

停止以原子方式侦听所有 DisplayManager 事件,并同步触发 Disabled

TryAcquireTarget(DisplayTarget)

尝试获取 DisplayTarget 的独占所有权。

TryAcquireTargetsAndCreateEmptyState(IIterable<DisplayTarget>)

尝试获取 DisplayTarget 对象集合的独占所有权,并创建一个空的可修改 DisplayState 对象,该对象支持连接到这些目标的路径。

TryAcquireTargetsAndCreateSubstate(DisplayState, IIterable<DisplayTarget>)

尝试获取 DisplayTarget 对象集合的独占所有权,并仅为传递给此方法的目标划分给定 DisplayState 的子集。 可以修改和应用生成的状态。

TryAcquireTargetsAndReadCurrentState(IIterable<DisplayTarget>)

尝试获取 DisplayTarget 对象集合的独占所有权,并创建使用所提供目标的当前状态填充的可修改 DisplayState

TryReadCurrentStateForAllTargets()

创建使用所有目标的整个系统显示状态填充的只读 DisplayState 对象。

TryReadCurrentStateForModeQuery()

管理 DisplayTarget 对象的所有权,并提供创建 DisplayState 对象的方法。

事件

Changed

添加、删除或修改系统显示硬件时引发的事件。 每当 DisplayAdapterDisplayTarget 集合更改时,都可能发生此情况。 使用此事件检测这些更改,并调用 GetCurrentAdapters 和/或 GetCurrentTargets 以获取更新的集合。

Disabled

每当禁用当前会话的显示堆栈时,以及调用 DisplayManager.Stop 时引发的事件。 可以在多种情况下禁用会话显示堆栈,例如切换终端服务会话,或从驱动程序故障中恢复。 建议订阅服务器尝试在调用 Disabled 时进行清理。 禁用会话显示堆栈时,大多数显示 API 都会失败。

Enabled

每当启用当前会话的显示堆栈并调用 DisplayManager.Start 时引发的事件。 可以在多种情况下重新启用会话显示堆栈,例如切换终端服务会话,或从驱动程序故障中恢复。 我们建议订阅者重新枚举此调用中的所有目标和状态,因为在引发此事件之前,系统显示堆栈可能处于任何状态。

PathsFailedOrInvalidated

每当系统异步显示路径失败或失效时引发的事件。 这可能是由于硬件带宽要求发生变化,也可能是由于驱动程序故障造成的。

此事件的订阅者应为其拥有的目标调用 TryAcquireTargetsAndReadCurrentState,并检查结果 DisplayState 对象中的任何路径是否将其 Status 属性设置为 FailedAsyncInvalidatedAsync,并执行建议的操作。

适用于