Контур Silverlight размыт — Как привязать к пикселям?

#silverlight #silverlight-4.0

#silverlight #silverlight-4.0

Вопрос:

У меня есть Canvas , на котором я рисую Path :

 <Path Data="M 380 110 v -10 l 100 -100"
      Stroke="#C0C0C2" StrokeThickness="1" UseLayoutRounding="True" />
  

Несмотря на то, что для StrokeThickness установлено значение 1, вертикальная часть контура прорисовывается через 2 пикселя более светлым цветом.

Контур Silverlight

Я знаю, что у WPF есть SnapsToDevicePixels свойство, которое это исправит, и я читал, что в Silverlight есть UseLayoutRounding свойство, которое вы можете использовать в некоторых случаях для получения того же эффекта, однако, похоже, оно не применимо к Path .

Могу ли я что-нибудь сделать, чтобы эта линия была нарисована правильно?

Ответ №1:

В MSDN в блоге Silverlight Дэйва Релиеа есть класс pixel snapper, который можно найти в в блоге Silverlight Дэйва Релиеа в,,. Это то, что я использовал в прошлом для привязки пикселей Silverlight.

Комментарии:

1. Спасибо за предложение, однако у меня это не сработало. Координаты Я, кажется, понимаю, что этот класс работает путем привязки границ элемента к круглым пикселям, но координаты, которые я использую, уже являются целыми числами, и в случае пути привязка границ может не означать, что содержимое также попадает в круглые пиксели.