我有一个客户端请求一个动画/全景图像被添加到他们的网站。基本上,这是一个标准尺寸的图像,他希望把它放在一个稍窄边框,并有从左至右为他的网站视觉元素的图像平移。有没有点击和拖动需要的;它只是基本上动画盘由左到右,然后重新开始与另一张照片。

这是一个.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的

PlaneProjection的MSDN文档

由Jeff轮流坐庄基金会的Silverlight 3动画的第7章

基本上你要做的是创建一个适用的沿Y轴旋转的动画。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top