Это вызвано собственным дизайном Direct2D.
Если быть точным, координаты линии находятся в (99,5, 199,5) - (500,5, 200,5).
И Ответ @Rick Brewster объяснил это.
Когда вы даете ему пиксельную координату, например (100, 120), которая относится к верхнему и левому углу пиксельного элемента, который простирается от пиксельные координаты (100, 120) - (101, 121) (верхний / левый - включительно, правый / нижний - не включен). Поскольку это прямая горизонтальная линия, вы фактически получаете заполненный прямоугольник из (99,5, 119,5) - (300,5, 120,5).
Так что если вы хотите нарисовать линию, покрывающую пиксели (100 , От 200) до (500, 200), вы можете использовать псевдонимный рендеринг или использовать полпиксельные смещения.