1

重複の可能性:
テキストが変更されたときにストーリーボードを開始する

アニメーションを作成しました:

<phone:PhoneApplicationPage
    ...>

    <phone:PhoneApplicationPage.Resources>
        <Storyboard x:Name="MessageFadeInOut" Storyboard.TargetProperty="Opacity">
            <DoubleAnimation From="0" To="1" Duration="0:0:1" BeginTime="0:0:0" />
            <DoubleAnimation From="1" To="1" Duration="0:0:1" BeginTime="0:0:1" />
            <DoubleAnimation From="1" To="0" Duration="0:0:1" BeginTime="0:0:2" />
        </Storyboard>
    </phone:PhoneApplicationPage.Resources>

私がやろうとしているのは、何かがフェードインし、少しの間とどまってからフェードアウトすることです。

私はそれをトリガーします:

private void Unit_Tap_1(object sender, System.Windows.Input.GestureEventArgs e)
        {
            Storyboard sb = this.Resources["MessageFadeInOut"] as Storyboard;
            Storyboard.SetTarget(sb, this.Message);
            sb.Begin();
        } 

しかし、sb.Begin()で「System.InvalidOperationException」が発生します。どうして?メッセージは画像です

4

1 に答える 1

2

このコンテキストで「メッセージ」が何であるかはわかりません。これが、この例外が表示される理由である可能性があります。またはそうではないかもしれません。

いずれにせよ、ストーリーボードを取得して手動で開始するべきではありません。VisualStateManagerを使用して、各状態でストーリーボードをカプセル化することにより、視覚的な状態を管理する必要があります。この@テキストが変更されたときにストーリーボードを開始する方法について詳しく読むことができます

VSMを開始する良い方法は、ExpressionBlend2のリリースでSteveWhiteによるこれらのビデオを視聴することです。

これらの各動画はシリーズの一部であるため、シリーズの残りの部分を視聴することを検討してください。@http ://www.interact-sw.co.uk/iangblog/2008/06/10/visual-stateで読むことができる記事もあります

于 2013-01-13T22:49:40.953 に答える