Вопрос

Я немного поискал, но не смог найти ничего похожего на то, что искал.Мне интересно узнать, как отображать различное содержимое на вторичных/третичных мониторах или проекторах с помощью C#.По сути, я хочу добиться некоторой формы представления докладчика (а-ля Powerpoint) на одном конкретном экране (основной дисплей) и вывода на дополнительном экране или проекторе.Я никогда не пытался разработать что-то с несколькими дисплеями, поэтому любые рекомендации, вероятно, должны быть на достаточно очевидном уровне.

Если бы кто-нибудь мог указать мне правильное направление, как справиться с подобными вещами в C#, я был бы очень признателен!

Это было полезно?

Решение

Вы можете использовать System.Windows.Forms.Screen.AllScreens Свойство для доступа к списку всех мониторов, о которых знает Windows.Если вы хотите использовать дисплей, который не был настроен пользователем, это становится сложнее — вам, вероятно, потребуется инициализировать адаптер дисплея и получить к нему доступ с помощью DirectX.

Другие советы

Просто чтобы расширить ответ Кевена (я +1), массив Screen.AllScreens дает вам массив объектов Screen.Объект Screen имеет свойство IsPrimary, которое вы можете использовать, чтобы определить, какой экран является основным, а какой вторичным (ага), а также у него есть свойство WorkArea, которое представляет собой прямоугольник, который возвращает вам все координаты второй экран.Самое интересное в этом то, что даже если, скажем, дополнительный экран настроен так, чтобы располагаться слева от основного, WorkArea.X будет отрицательным числом, и вы сможете размещать там формы или что-то еще.

Одним из основных классов, с которыми вам нужно будет взаимодействовать, является Экран (это пространство имен WinForms).В общем, все экраны рассматриваются как набор рабочих областей, свойства каждой из которых можно использовать с помощью класса экрана.

Вы можете получить все экраны вот так...

Screen [] screens = Screen.AllScreens;

Здесь — это короткая статья о программировании на нескольких мониторах на C#.

Также не забудьте установить для свойства «StartPosition» значение «Manual» в окне, которое вы хотите отображать на дополнительном экране, иначе оно всегда будет отображаться на основном экране.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top