的Silverlight:动画和/或平移的图像
-
18-09-2019 - |
题
我有一个客户端请求一个动画/全景图像被添加到他们的网站。基本上,这是一个标准尺寸的图像,他希望把它放在一个稍窄边框,并有从左至右为他的网站视觉元素的图像平移。有没有点击和拖动需要的;它只是基本上动画盘由左到右,然后重新开始与另一张照片。
这是一个.NET页,我已经得到了Silverlight的书坐在这儿,我要学习它的想法堆栈。我想,现在是好时间为已任,因为现在我确实有这方面的实际生活中使用。为了记录在案,我的经验.NET开发人员,但没有使用Silverlight多玩超越读的几本书第几章。
所以......第一个问题,我假定这是可能使用Silverlight做的,我错了有关情况?
第二个问题,如果我能做到这一点,可以有人点我在正确的方向至于什么功能/控制/技术要做到这一点,需要?我读了深变焦,但似乎并没有被我所需的东西。我只需要采取一个标准尺寸的JPEG / GIF /任何文件,并让它慢慢平移由左到右。什么Silverlight的功能,我需要学习/花一些时间来学习,为了做到这一点?
解决方案
这是肯定是可行的。您将有本质上的图像坐在画布上,将处理该画布上的MouseMove事件。作为从一个侧面鼠标轨迹给对方,你会申请翻译的图像,将其从一侧移动到另一侧。
下面的代码应该让你开始:
您的图像添加画布MainPage.xaml中(注意鼠标移动/输入/ Leave事件)
<Canvas x:Name="LayoutCanvas" MouseMove="LayoutCanvas_MouseMove" MouseEnter="LayoutCanvas_MouseEnter" Height="200" Width="200">
<Image x:Name="imgToMove" Source="myimage.png" />
</Canvas>
在后面的代码,添加的MouseMove /输入/ Leave事件
Point lastMousePos = new Point();
Point currentMousePos = new Point();
double amountToMove = 1;
private void LayoutCanvas_MouseMove(object sender, MouseEventArgs e)
{
currentMousePos = e.GetPosition(LayoutCanvas);
if (lastMousePos.X > currentMousePos.X)
{
amountToMove--;
}
else
{
amountToMove++;
}
imgToMove.SetValue(Canvas.LeftProperty, amountToMove);
lastMousePos = currentMousePos;
}
private void LayoutCanvas_MouseEnter(object sender, MouseEventArgs e)
{
lastMousePos = e.GetPosition(LayoutCanvas);
}
private void LayoutCanvas_MouseLeave(object sender, MouseEventArgs e)
{
imgToMove.SetValue(Canvas.LeftProperty, (double)0);
}
和大功告成。现在,当你将鼠标移到该图像时,图像会无论从左至右或从右到左平移。当你离开的形象,它会回到原来的位置。
其他提示
我认为你可以做到这一点。上阅读有关的动画书的一章,你会看到你如何轻松地移动图像。和阅读在一个布局面板定位像图像的控制等的画布。
您要寻找的被称为投影变换。
一些好的来源是:
Silverlight 3中PlaneProjection引物一>由Jaime Rodriguez的
由Jeff轮流坐庄基金会的Silverlight 3动画的第7章
基本上你要做的是创建一个适用的沿Y轴旋转的动画。