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

来源:互联网 发布:linux多线程如何实现 编辑:程序博客网 时间:2024/06/07 05:08

          小白自己在做用滑轮控制图形(主要是指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还是很强大的。

0 0
原创粉丝点击