0

私は単純な Silverlight アプリケーションに取り組んでいます。適用のポイントは、XMLファイルから読み込んだデータを表示することです。データは文字列 "password"整数 "passwordCount " で構成されます。ロードされた各位置は色付きの四角として表示され、ユーザーがこの四角の上にマウスを移動すると、幅または高さが "passwordCount/10" ピクセルにサイズ変更され、"password" 文字列がその上に表示されます。次に例を示します。

マウスオーバー時:

VisualStudio の [実行] ボタンを使用して実行すると、すべて正常に動作します。問題は、スクリプトを Web サイトに配置すると、タイルのサイズが間違った方向に変更されることです (大きくなる代わりに小さくなります)。テキストも表示されません。理由がまったくわかりません。Web サイトの 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

改造: コメントを追加できないため、回答として投稿

ここでは、TargetProperty で渡す「方向」が「(FrameworkElement.Width)」であり、四角形の幅を広げると想定しています。

その場合、オブジェクトのサイズを縮小できる唯一の論理的な理由は、設定している「sizeAnimation.To」プロパティであり、オブジェクトの実際の幅よりも小さい値を設定しています。

この DrawTextBlock() は何をしているのですか? アニメーションの動作を変更できるコードはありますか?

于 2012-11-18T18:57:12.727 に答える
0

問題は自然に解決しました。すべてのファイルをサーバーにコピーしたところ、うまく機能します。Windowsの問題だったようです。@Abhinavにご関心をお寄せいただきありがとうございます。

于 2012-11-18T19:08:16.510 に答える