Поделиться через


Xamarin.Essentials: сведения о отображении устройства

Класс DeviceDisplay предоставляет сведения о метриках экрана устройства, на котором запущено приложение. Он также позволяет запросить, чтобы при работе приложения устройство не переводилось в спящий режим.

Начало работы

Чтобы начать использовать этот API, ознакомьтесь с руководством по началу работы с Xamarin.Essentials, чтобы правильно настроить и установить библиотеку в проектах.

Использование DeviceDisplay

Добавьте ссылку на Xamarin.Essentials в своем классе:

using Xamarin.Essentials;

Основные сведения об экране

В дополнение к базовой информации об устройстве класс DeviceDisplay содержит информацию об экране устройства и его ориентации.

// Get Metrics
var mainDisplayInfo = DeviceDisplay.MainDisplayInfo;

// Orientation (Landscape, Portrait, Square, Unknown)
var orientation = mainDisplayInfo.Orientation;

// Rotation (0, 90, 180, 270)
var rotation = mainDisplayInfo.Rotation;

// Width (in pixels)
var width = mainDisplayInfo.Width;

// Height (in pixels)
var height = mainDisplayInfo.Height;

// Screen density
var density = mainDisplayInfo.Density;

Класс DeviceDisplay также предоставляет событие, которое запускается при изменении любой метрики экрана (на это событие можно подписаться):

public class DisplayInfoTest
{
    public DisplayInfoTest()
    {
        // Subscribe to changes of screen metrics
        DeviceDisplay.MainDisplayInfoChanged += OnMainDisplayInfoChanged;
    }

    void OnMainDisplayInfoChanged(object sender, DisplayInfoChangedEventArgs  e)
    {
        // Process changes
        var displayInfo = e.DisplayInfo;
    }
}

Предотвращение отключения экрана

Класс DeviceDisplay предоставляет свойство bool с именем KeepScreenOn, задание которого предотвращает отключение или блокировку экрана устройства.

public class KeepScreenOnTest
{
    public void ToggleScreenLock()
    {
        DeviceDisplay.KeepScreenOn = !DeviceDisplay.KeepScreenOn;
    }
}

Различия платформ

Никаких различий.

API

Другие видео о Xamarin см. на Channel 9 и YouTube.