【发布时间】:2011-08-19 09:55:00
【问题描述】:
我正在使用视差滚动技术在WPF 中开发一个表单,我需要完成最后一步。我希望重新创建this nice effect of the mouse。
我正在尝试在鼠标完成移动时获得很酷的延迟缓动。当鼠标完成移动后,背景会慢慢停止移动,这很容易通过缓动点来实现,但我不知道如何做到这一点。
我创建了 3 个背景,当鼠标移动时,我重新创建了视差滚动。现在我希望添加此功能以使其更加逼真。
你知道如何重现鼠标的这种效果吗?
编辑
我列出了我的代码 sn-p 来向你展示当鼠标移动事件时我是如何移动这 3 个背景的:
private void Window_MouseMove(object sender, MouseEventArgs e)//it is the Layout Root that contain the 3 layouts to create the parallax effect
{
Point mouse = e.GetPosition(this);
TransformGroup group = (TransformGroup)this.grid.RenderTransform; //The first Background
TranslateTransform translate = (TranslateTransform)group.Children[3];
translate.X = 400 - mouse.X ;
translate.Y = 300 - mouse.Y;
TransformGroup group1 = (TransformGroup)this.grid1.RenderTransform;// 2th Background
TranslateTransform translate1 = (TranslateTransform)group1.Children[3];
translate1.X = 400 - (mouse.X - 10) * 2;
translate1.Y = 300 - (mouse.Y - 10) * 2;
TransformGroup group2 = (TransformGroup)this.grid2.RenderTransform;// 3th Background
TranslateTransform translate2 = (TranslateTransform)group2.Children[3];
translate2.X = 400 - (mouse.X - 20) * 3;
translate2.Y = 300 - (mouse.Y - 20) * 3;
}
也许这能让你更好地理解我的问题。
【问题讨论】:
标签: c# .net wpf mouseevent