首页 新闻 赞助 找找看

wpf怎么实现文字在固定的框内根据缩放的大小自适应显示(如百度室内地图上的文字显示)

1
悬赏园豆:100 [待解决问题]

    例如要对一个大小固定的方框图片进行文字标注,那么当这个方框被缩小(文字不跟随缩放)到空间不足容纳下相应文字时,文字应自动消失;当方框放大到有足够空间放下相应文字时,文字出现;再放大时,文字不跟随放大。就是用wpf模仿百度地图的室内地图上的文字显示方式。请帮忙想想,谢谢。

wpf下怎么实现?首先一个问题,图片缩放,而文字不缩放的情况下,怎么实现文字的重新定位?然后是怎么做到文字在比要标注区域小的时候,不显示?而在标注区域足够大时,又显示出来?

zhutata的主页 zhutata | 初学一级 | 园豆:102
提问于:2013-11-23 23:25
< >
分享
所有回答(3)
0

你可以参考一下这个:http://wpfextensions.codeplex.com/

可以下载源码研究一下。

悟行 | 园豆:12559 (专家六级) | 2013-11-24 10:39

好的,我先看看,谢谢提供资料。

支持(0) 反对(0) zhutata | 园豆:102 (初学一级) | 2013-11-24 10:45

没弄懂,似乎跟本问题联系不大,谢谢。能说明一下吗?

 

支持(0) 反对(0) zhutata | 园豆:102 (初学一级) | 2013-11-25 12:42
0

加个viewbox就可以了

陶子 | 园豆:176 (初学一级) | 2013-11-24 12:39

viewbox怎么实现?具我查看资料,viewbox会把里面的所有东西一起拉伸缩放的哦。

能否提供程序?

支持(0) 反对(0) zhutata | 园豆:102 (初学一级) | 2013-11-25 12:35
0

这些基本上是GIS绘制的一些问题,我见过的解决方案如下:

  1. 当缩放的时候,查询一下当前地图的比例尺,当比例尺大于某个数值的时候,把文本图层显示出来,反之亦然。
  2. 至于文本标签定位的问题, 每个文本标签的位置记录是用经纬度保存的(物理位置),这是一个绝对位置,地图变化时,它的经纬度是不变的。 当地图变化时,根据文本标签的经纬度计算出它在屏幕上的位置(x,y),重新更新一下坐标就可以了。
天方 | 园豆:5407 (大侠五级) | 2013-11-24 19:10

第二个应该是可以借鉴的。把所有的textblock重新计算出新的xy位置。

第一个,也能实现,不过这个方法太麻烦啦,如果我有1000个方框要标注,每个方框的大小都不一样,那么很难去做到根据每一个方框的大小判断是否应该显示。

支持(0) 反对(0) zhutata | 园豆:102 (初学一级) | 2013-11-25 12:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册