首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >像GIS软件一样在wpf应用程序中应用变换

像GIS软件一样在wpf应用程序中应用变换
EN

Stack Overflow用户
提问于 2012-12-11 14:11:02
回答 1查看 209关注 0票数 0

我正在尝试编写一个WPF应用程序来在画布上渲染shapefile,而不使用任何GIS SDK。直到渲染成功完成。当尝试应用缩放变换时,我发现画布上的所有形状在放大时都变得更大。在点特征(在画布上显示为椭圆形状)和TextBlocks的情况下,大小应该保持不变,只是位置应该相对改变。请指导我如何达到这个要求。

对于点功能,我的代码如下:

代码语言:javascript
复制
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是一个变换组,它有两个孩子,一个是标度变换,另一个是平移变换。

我在这个网站(Prevent WPF TextBlock from expanding text due to LayoutTransform)上找到了一篇文章,描述了如何防止文本块扩展。解决方案是将反变换绑定到文本块。这里我的文本块是动态创建的。所以请告诉我如何将反变换动态绑定到文本块。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-16 14:26:54

我已经在WPF中完成了完全相同的工作,没有使用任何API。对于点要素,可以将点的Transform特性设置为TranslateTransform (可能包含在viewTransform中),这样在平移地图时,所有点要素都会随着其他要素的移动而正确移动。但是在缩放的情况下,我清除了所有的点和文本块,并在给定viewTransform的情况下重新计算它们的坐标。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13814630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档