您的位置:首页 > 其它

wpf 关于鼠标换轮放大缩小只有120的问题

2015-09-29 20:42 246 查看
          小白自己在做用滑轮控制图形(主要是指geometrygroup)放大缩小时,发现滑轮从-120到+120太快,图片瞬间放大缩小,大小都是定数,效果没有可观性。代码如下:

        private void mycanvas_MouseWheel(object sender, MouseWheelEventArgs e)

        {                    

            ScaleTransform scaleTransform = new ScaleTransform();

            scaleTransform.CenterX = MousePostion.X;

            scaleTransform.CenterY = MousePostion.Y;

            scaleTransform.ScaleX = (double)e.Delta*1.0 / 1200+1;              //宽度放大 //此处放大倍数有问题

            scaleTransform.ScaleY = (double)e.Delta*1.0 / 1200+1;              //高度放大                    

            geometry.Transform = scaleTransform;                      

        }

        在多次尝试改过1200数值大小还是没有那种慢速放大缩小效果后,就想要放弃了。

        因为要和旋转,平移效果结合。当加上

       

       TransformGroup mini = new TransformGroup();

        mini.Children.Add(scaleTransform);

       惊奇发现居然可以了。实现了控速放大缩小以及无限放大缩小(在一定范围内)。

       当然,再用 TransformGroup时要小心,尤其在mousemove事件里用的时候,会出现意想不到的错误,比如旋转角度出现累加,平移距离出现累加,经小白多多试验分析,终于解决了。下篇咱们在分析这两点。

       当然大神觉得小白这些太low了,但作为初学者,总会遇到各种问题,上网查查资源太少,对熟练人员来说的小问题,可能会让我们费上好大功夫。我的这个问题我就没搜到。所以写此用以交流。

       要相信WPF还是很强大的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息