设备显示信息

Browse sample. 浏览示例

本文介绍如何使用 .NET Multi-platform App UI (.NET MAUI) IDeviceDisplay 接口读取有关设备的屏幕指标的信息。 此接口可用于请求屏幕在应用运行时保持清醒状态。

IDeviceDisplay 接口的默认实现通过 DeviceDisplay.Current 属性提供。 IDeviceDisplay 接口和 DeviceDisplay 类都包含在 Microsoft.Maui.Devices 命名空间中。

主显示器信息

MainDisplayInfo 属性返回有关屏幕和方向的信息。 下面的代码示例使用页上的 Loaded 事件读取有关当前屏幕的信息:

private void ReadDeviceDisplay()
{
    System.Text.StringBuilder sb = new System.Text.StringBuilder();

    sb.AppendLine($"Pixel width: {DeviceDisplay.Current.MainDisplayInfo.Width} / Pixel Height: {DeviceDisplay.Current.MainDisplayInfo.Height}");
    sb.AppendLine($"Density: {DeviceDisplay.Current.MainDisplayInfo.Density}");
    sb.AppendLine($"Orientation: {DeviceDisplay.Current.MainDisplayInfo.Orientation}");
    sb.AppendLine($"Rotation: {DeviceDisplay.Current.MainDisplayInfo.Rotation}");
    sb.AppendLine($"Refresh Rate: {DeviceDisplay.Current.MainDisplayInfo.RefreshRate}");

    DisplayDetailsLabel.Text = sb.ToString();
}

IDeviceDisplay 接口还提供当任何屏幕指标发生更改时引发的 MainDisplayInfoChanged 事件,例如设备方向从 DisplayOrientation.Landscape 更改为 DisplayOrientation.Portrait 时。

保持屏幕打开

还可以通过将 KeepScreenOn 属性设置为 true 阻止设备锁定或屏幕关闭。 每当按下开关控件时,以下代码示例会切换屏幕锁:

private void AlwaysOnSwitch_Toggled(object sender, ToggledEventArgs e) =>
    DeviceDisplay.Current.KeepScreenOn = AlwaysOnSwitch.IsToggled;

平台差异

本部分利用设备显示器介绍特定于平台的差异。

无平台差异。