我想在WPF中無縫地平鋪一堆不同顏色的矩形。也就是說,我想把一堆矩形邊對邊放,而且它們之間沒有空隙。在WPF中無縫平鋪矩形
如果一切都與像素對齊,這工作正常。但我也想支持任意縮放,理想情況下,我不想使用SnapsToDevicePixels(因爲當圖像放大時會影響質量)。但這意味着我的矩形有時會以缺口呈現。例如:
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Background="Black">
<Canvas SnapsToDevicePixels="False">
<Canvas.RenderTransform>
<ScaleTransform ScaleX="0.5" ScaleY="0.5"/>
</Canvas.RenderTransform>
<Rectangle Canvas.Left="25" Width="100" Height="100" Fill="#CFC"/>
<Rectangle Canvas.Left="125" Width="100" Height="100" Fill="#CCF"/>
</Canvas>
</Page>
如果ScaleTransform的的ScaleX是1,則該矩形裝配在一起無縫連接。當它爲0.5時,它們之間有一條暗灰色的條紋。我明白爲什麼 - 組合的半透明邊緣像素不會100%不透明。但我想要一個方法來解決它。
我總是可以讓矩形重疊,但我不會總是事先知道他們將會在什麼樣的模式下(這是爲了最終支持地圖編輯器的遊戲)。此外,當物體被放大時,這會在重疊區域造成僞影在(除非我在重疊部分做了斜切角度,這是一項非常多的工作,並且仍然在拐角處導致問題)。
有沒有什麼辦法可以將這些矩形組合成一個組合的「形狀」,它沒有內部間隙?我玩過GeometryDrawing,它完全是這樣,但是我沒有看到用不同顏色的筆刷繪製每個RectangleGeometry的方法。
是否有任何其他方法可以在任意變換下無縫地平鋪形狀,而不訴諸於SnapsToDevicePixels?
由於我有完全相同的問題,我想問你是否找到了解決方案。 – Jens 2010-05-27 10:52:31