none
怎样禁用Canvas对象的级联ScaleTransform变换 --急 RRS feed

  • 问题

  • 我想对Canvas对象进行拖动和缩放的效果,但是它下面有ItemControls,当应用ScaleTransform后就会级联的将所有子对象都缩放,这不是我想要的效果 ,我希望子对象可以大小不变但是坐标会跟随Canvas的缩放而更新,可以帮我解决一下这个问题吗?  


      万分火急。   谢谢~!
    2010年4月25日 1:00

答案

全部回复

  • 这个是附加属性,它会应用到所有子属性上,你可以放两个Canvas,

     

    让它们的范围一样,这样第二个Canvas里的ItemControls就不会被Scale影响。

     

     


    My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com

    My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com


    《银光志--Silverlight 3.0开发详解与最佳实践》
    2010年4月25日 7:28
    版主
  • 风云的思路可以考虑下,像波感效果就是用的两个对象来实现的。

     http://eyeonearth.cloudapp.net/ 这里可以看到效果。

    我博文里有详细的实现思路。http://www.cnblogs.com/beniao/archive/2010/04/07/1704812.html

     


     

    BLOG:http://beniao.cnblogs.com MSN:beniao@live.cn

    • 已建议为答案 beniao 2010年4月26日 12:04
    2010年4月25日 14:19
  • 这个是附加属性,它会应用到所有子属性上,你可以放两个Canvas,

     

    让它们的范围一样,这样第二个Canvas里的ItemControls就不会被Scale影响。

     

     


    My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com

    My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com


    《银光志--Silverlight 3.0开发详解与最佳实践》

    这样确实能解决不随之缩放的效果,但是这样一来两个Canvas之间的坐标就不能同步,需要用依赖属性手动绑定。

    我简单把问题归纳下,假设Canvas A是背景层,Canvas B是图标层,B中的图标具有相对于A的坐标,并且希望在A Scale时相对位置保持不变,但是图标大小也不变。

    当背景Canvas缩放后子对象相对坐标是不变的,因此如果把图标放入A中作为子对象,位置会相对更新,但缺憾是大小也随之缩放。

    如果把图标放入B层中,缩放是无关了,可是相对位置需要根据 A 的缩放尺寸为每个图标重新计算相对于 B 坐标, 如果真是这样,我希望能找到一种能通过实现IvalueConvertor 来绑定两个Canvas的坐标同步的方法。 或者 通过 MeasureOverride, ArrangeOverride方法对itemControls 进行实时重新布局的方法,

    国外的许多案例都是通过 Panel的布局系统来控制这些图标,我对此研究不够,希望能与大家一起研究。(参考ComponentOne for Silverlight   C1Map/C1ItemsLayerMap)

    2010年4月28日 2:06
  • 风云的思路可以考虑下,像波感效果就是用的两个对象来实现的。

     http://eyeonearth.cloudapp.net/ 这里可以看到效果。

    我博文里有详细的实现思路。http://www.cnblogs.com/beniao/archive/2010/04/07/1704812.html

     


     

    BLOG:http://beniao.cnblogs.com MSN:beniao@live.cn

    谢谢,博主可能没明白我的意思,上面归纳了一下, 这个问题我暂时用反响缩放的方式应急了一下。但是肯定不是解决问题的最好方法,欢迎再次讨论。
    2010年4月28日 2:06
  • 因为一直没有后续的讨论,我将第一个答案标记正确,如何觉得不合理,再联系我。我再改过来
    努力!完成了js解析器,还差一个svg插件,一个绘图程序,做好自己,呵呵~!
    2011年7月12日 2:31
    版主