0

我正在开发一个简单的 Silverlight 应用程序。应用点是显示从 XML 文件加载的数据。数据由String "password"Integer "passwordCount"组成。每个加载的位置都显示为一个彩色方块,每当用户将鼠标移到该方块上时,它的大小都会调整为“passwordCount/10”像素宽度或高度,并在其上显示“密码”字符串。这是一个例子:

鼠标悬停时:

如果我通过 VisualStudio 运行按钮运行它,一切正常。问题是,当我将脚本放在网站上时,图块会朝错误的方向调整大小(它们变得更小而不是更大)。文本也不显示。我不知道为什么。网站上的 Silverlight 在单独的窗口中打开,鼠标悬停时看起来像这样:


(来源:screenshu.com

这是我用来为图块设置动画的函数:

    public void rectangle_MouseEnter(object sender, MouseEventArgs e)
    {
        sbMouseON = new Storyboard();
        DoubleAnimation sizeAnimation = new DoubleAnimation();
        sizeAnimation.To = passwordCount/10; //passwordCount is always greater than 1000
        sizeAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(300));
        Storyboard.SetTarget(sizeAnimation, (Rectangle)sender);
        Storyboard.SetTargetProperty(sizeAnimation, new PropertyPath(direction));
        sbMouseON.Children.Add(sizeAnimation); 

        Canvas.SetZIndex(rect, 2); //move rectangle up to make animation visible
        DrawTextBlock();
        sbMouseON.Begin();
    }
4

2 回答 2

0

The problem solved itself. I've just copied all files onto server and it works great. Looks like it was some Windows problem. Thank you for your interest @Abhinav.

于 2012-11-18T19:08:16.510 回答
0

模组:无法添加评论,因此发布为答案

这里我假设您在 TargetProperty 中传递的“方向”是“(FrameworkElement.Width)”以增加矩形的宽度。

如果是这样,则对象可以减小大小的唯一逻辑原因是您设置的“sizeAnimation.To”属性设置的值小于对象的实际宽度。

这个 DrawTextBlock() 在做什么?里面有没有可以改变动画行为的代码?

于 2012-11-18T18:57:12.727 回答