Управление проектором/дисплеем C#
Вопрос
Я немного поискал, но не смог найти ничего похожего на то, что искал.Мне интересно узнать, как отображать различное содержимое на вторичных/третичных мониторах или проекторах с помощью 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» в окне, которое вы хотите отображать на дополнительном экране, иначе оно всегда будет отображаться на основном экране.