2

クラスStoryboardのインスタンスの制御に問題があります。

これは、XAMLのリソースで定義されています。

<Window.Resources>
    <Storyboard x:Name="Storyboard1" x:Key="Storyboard1">

また、私は次のようにそれを停止させようとしています:

        Storyboard sb = (Storyboard)this.TryFindResource("Storyboard1");
        sb.Seek(TimeSpan.Zero);

しかし、成功しません。コードをインスタンスStorybord1に呼び出そうとすると、エラーが発生します。現在のコンテキストにはそのようなインスタンスはありません(また、C#コードでインテリセンスを使用しようとすると、成功しません。以前の問題を説明する)。

私がこのインスタンスを見つけようとしているとき:

        foreach (var item in this.Resources)
        {
            MessageBox.Show(item.ToString());
        }

失敗。

私はsmthを難しくしたり、超カプセル化されたデザインパターンを使用したりしていないので、見つけたり使用したりすることはできません。

不透明度を変更して、1つのUI要素と1つのストーリーボードを追加するだけです。

ストーリーボードのすべてのプレイを自分でコントロールしたいだけです。停止して開始できるとき。

Silverlightでは問題は発生しませんが(SilverlightでStoryboard1にアクセスできるため)、WPFでは、defualtによるすべてのストーリーボードが自動再生され、そのインスタンスを制御できません。

どうすれば解決できますか?

ありがとうございました!

PSこれが私にアドバイスをするのに役立つなら、見てください:

http://ideone.com/O0x93O-C# _

http://ideone.com/Drc1SP-XAML _

4

2 に答える 2

1

実際、私はあなたの絵コンテにアクセスできます。あなたのメッセージボックスには絵コンテ名がポップアップ表示されます。コードビハインドでコントロールボタンを開始するときに、コントロールボタンをフェードインさせたいと思います。コントロールが正常に表示された後にストーリーボードを開始する必要があった Windows.Trigger を削除し、不透明度を 0 に設定して、ストーリーボード インスタンスをクラス レベル変数にしました。

int count = 0;
Storyboard _sb;
public MainWindow()
{
    InitializeComponent();

    var sb = this.TryFindResource("Storyboard1");
     _sb = sb as Storyboard;
}

次に、それをトリガーするために使用したいイベント/条件を使用します(この場合、Windows Loaded Eventを使用しました

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    _sb.Begin();
}
于 2012-12-26T22:44:52.920 に答える