Свойства позиции и размера winforms

Я пытаюсь распутать все свойства позиции и размера winforms, и было бы очень полезно, если бы был всеобъемлющий обзор, объясняющий отношения между ними. Многие из них кажутся функционально эквивалентными, но я опасаюсь, что могу сделать некоторые ложные предположения.

Для справки я имею в виду такие свойства, как Screen.PrimaryScreen.Bounds vs Form.DesktopBounds; Form.ClientRectangle против Form.DisplayRectangle; Form.left против Form.Location.X; PointToScreen против Cursor.Position и т.д. Меня также особенно интересует влияние нескольких мониторов на свойства позиции.

Если кто-нибудь знает аннотированную диаграмму, на которой все это изложено, это было бы здорово.


person CtrlDot    schedule 10.09.2010    source источник


Ответы (1)


В качестве частичного ответа, описывающего те свойства, которые вы перечислили выше:

  • Screen.PrimaryScreen.Bounds дает вам размеры для основного монитора. При настройке с несколькими мониторами любой экран установлен в качестве основного.
  • Form.DesktopBounds дает комбинированную границу для весь «рабочий стол», представляющий собой виртуальный холст, охватывающий все активные мониторы.
  • Form.ClientRectangle предоставляет область (прямоугольник) клиентской области формы (пространство внутри хрома)
  • Form.DisplayRectangle похож на Form.ClientRectangle, но включает хром (заголовок и рамка вокруг формы)
  • Form.Location.X и Form.Left фактически одно и то же (также относится к верхнему и Y), используя верхний левый угол в качестве начала координат 0,0 и увеличивающие x и y в направлении нижнего правого угла.
  • PointToScreen возвращает "экранную" координату - но, похоже, относительно общей площади рабочего стола; Cursor.Position возвращает аналогичное значение.

Если вы хотите узнать больше о конфигурации экрана в клиенте, ознакомьтесь с Screen в MSDN. Некоторый интерес также может представлять AllScreens свойство, которое дает вам подробную информацию о полной настройке.

Изменить:

Хорошо - (простой) обзор ;-) Я тоже могу быть ленивым!

Простой обзор свойств позиции

person AJ.    schedule 10.09.2010
comment
@AJ - спасибо, но просто чтобы уточнить, я не искал индивидуальных объяснений. Каким бы ленивым я ни был, я полез в MSDN. На что я действительно надеялся, на обзор, который связал бы их все воедино — желательно аннотированную диаграмму. - person CtrlDot; 10.09.2010