我正在尝试编写一个 WPF 应用程序来在画布上呈现 shapefile,而不使用任何 GIS SDK。直到渲染成功完成。在尝试应用缩放变换时,我发现画布上的所有形状在放大时都会变大。对于点特征(在画布上显示为椭圆形状)和 TextBlocks,大小应该保持不变,只有位置应该相对变化. 请指导我如何实现这一要求。
对于点功能,我的代码如下:
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 expand text due to LayoutTransform),描述了如何防止文本块扩展。该解决方案说将逆变换绑定到文本块。这里我的文本块是动态创建的。所以请告诉我如何将逆变换动态绑定到文本块。