2 回答

TA貢獻1876條經驗 獲得超5個贊
在您的裝飾器類中,您可以嘗試其中一些選項和它們的組合......這就是我在裝飾器中使用的來消除模糊線條和模糊圖標:
RenderOptions.SetEdgeMode(this, EdgeMode.Aliased);
RenderOptions.SetBitmapScalingMode(this, BitmapScalingMode.NearestNeighbor);
SnapsToDevicePixels = true;
UseLayoutRounding = true;
不幸的是,您自己提供的答案有時是唯一的答案。偏移 0.5,將畫筆寬度設置為 1.0001 等是非常常見的解決方法。WPF 試圖通過抗鋸齒來變得聰明,但是對于 1 像素寬度/高度線和其他類型的元素,它們并沒有做到這一點。

TA貢獻2036條經驗 獲得超8個贊
玩弄各種選項后,我發(fā)現(xiàn),抵消left并right通過.5調用之前DrawLine修復這個問題。這似乎也印證了我的亞像素理論。
left.Offset(5, 5);
right.Offset(5, 5);
drawingContext.DrawLine(_pen, left, right);
雖然這確實有效,但我發(fā)現(xiàn)它是一個非常不令人滿意的解決方案。我的繪圖邏輯很可能會變得更復雜,我不想經常處理半像素偏移。
我希望其他人可以為我指出一種“更正確”的處理方式。
- 2 回答
- 0 關注
- 241 瀏覽
添加回答
舉報