Запретить Silverlight масштабирование ширины линии

При использовании класса ScaleTransform Silverlight также масштабирует толщину обводки фигур, которые я отображаю. Но что, если я не хочу такого поведения? Можно ли отключить масштабирование штрихов, или мне придется перебирать каждый объект формы и устанавливать обратную толщину?


person Cario Dactylus    schedule 06.07.2010    source источник


Ответы (1)


ScaleTransform — это преобразование рендеринга. Он не меняет основной макет, а просто меняет способ его отображения на экране. Невозможно иметь шкалу точек, но не иметь шкалу толщины линии.

person Stephan    schedule 06.07.2010
comment
Безусловно, любая линия определяется своими конечными точками и толщиной. Толщину также имеет смысл масштабировать, но еще более целесообразно иметь возможность ее отключить. OpenGL и Direct3D работают только с вершинами, а растеризатор отрисовывает линии прямо в задний буфер, не заботясь о каких-либо преобразованиях, поскольку вершины уже есть. Если это невозможно, то это потому, что это было сделано Microsoft, а не потому, что это невозможно по своей сути. - person Cario Dactylus; 07.07.2010
comment
Я говорил чисто в контексте Silverlight. Я знаю, что можно реализовать способ сделать это, но способ преобразования рендеринга в работе SL не позволяет делать это автоматически. - person Stephan; 07.07.2010