Сложение System.Drawing.Points ⇐ C#

Место общения программистов C#
Anonymous
Сложение System.Drawing.Points

Сообщение Anonymous »

Мне встретился следующий код, который использует конструктор класса System.Drawing.Size для добавления двух объектов System.Drawing.Point.

Код: Выделить всё

// System.Drawing.Point mpWF contains window-based mouse coordinates
// extracted from LParam of WM_MOUSEMOVE message.

// Get screen origin coordinates for WPF window by passing in a null Point.
System.Windows.Point originWpf = _window.PointToScreen(new System.Windows.Point());

// Convert WPF doubles to WinForms ints.
System.Drawing.Point originWF = new System.Drawing.Point(Convert.ToInt32(originWpf.X),
Convert.ToInt32(originWpf.Y));

// Add WPF window origin to the mousepoint to get screen coordinates.
mpWF = originWF + new Size(mpWF);
Я считаю использование + new Size(mpWF) в последнем операторе хаком, потому что, когда я читал приведенный выше код, он меня замедлил так как я не сразу понял, что происходит.

Я попытался деконструировать последнее утверждение следующим образом:

Код: Выделить всё

System.Drawing.Point tempWF = (System.Drawing.Point)new Size(mpWF);
mpWF = originWF + tempWF;  // Error: Addition of two Points not allowed.
Но это не сработало, поскольку для двух объектов System.Drawing.Point не определено сложение. Есть ли другой способ сложения двух объектов Point, который был бы более интуитивным, чем исходный код?

Подробнее здесь: https://stackoverflow.com/questions/329 ... ing-points

Вернуться в «C#»