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还是很强大的。
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还是很强大的。
相关文章推荐
- 微软无线镭射简报鲨8000激光笔记本鼠标 - (2)
- 鼠标与“助手”的不解之缘
- Delphi实现窗体感知鼠标滑过并自动隐藏与显示窗口的方法
- C#及WPF获取本机所有字体和颜色的方法
- WPF MVVM示例讲解
- PowerShell中调用WPF生成炫酷窗口实例
- C#模拟window操作鼠标的方法
- WPF实现类似360安全卫士界面的程序源码分享
- C#实现随鼠标移动窗体实例
- C#中WPF使用多线程调用窗体组件的方法
- VB实现鼠标绘图实例代码
- WPF实现渐变淡入淡出的登陆窗口效果
- WPF的数据绑定详细介绍
- Js倒计时代码,当鼠标离开页面与回到页面会自动停止与开始
- js实现鼠标经过表格行变色的方法
- js实现精美的图片跟随鼠标效果实例
- JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
- JS+DIV实现鼠标划过切换层效果的方法
- javascript实现淡蓝色的鼠标拖动选择框实例
- WPF绑定实例详解