我正在嘗試編寫一個WPF應用程序來在不使用任何GIS SDK的情況下在畫布上渲染shapefile。直至呈現其成功完成。在嘗試應用縮放變換時,我發現畫布上的所有形狀在放大時會變大。如果點要素(在畫布上顯示爲橢圓形狀)和TextBlocks,大小應該保持相同,只有位置應該相對變化。請指導我如何達到這一要求。在地理信息系統軟件中應用wpf應用中的變換
點要素我的代碼如下:
private Geometry CreateEllipseGeometry(double size, Point centerPoint)
{
EllipseGeometry geom = new EllipseGeometry();
geom.RadiusX = size;
geom.RadiusY = size;
geom.Center = centerPoint;
geom.Transform = this.viewTransform;
return geom;
}
這裏viewTransform是有兩個孩子的變換組,一個是scaletransform,另一個是translatetransform。
我在這個網站上發現了一篇文章(Prevent WPF TextBlock from expanding text due to LayoutTransform),它描述瞭如何防止文本塊擴展。解決方案表示將逆變換綁定到文本塊。 在這裏我的文本塊是動態創建的。所以請告訴我如何將逆變換動態綁定到文本塊。
當畫布上有大量的點要素和文本塊時,這種方法肯定會達到性能。你在這方面做了些什麼? –
是的,我已經完成了幾百到幾千個幾何圖形(點,線,多邊形)並且沒關係。 –