locked
csファイルからアニメーションのトリガ(Pause,Resume編) RRS feed

  • 質問

  • 以前、cs側からアニメーションを操作できないかと質問さえて頂き

    (FindResource("Storyboard1") as Storyboard).Begin();

    このようにすればできると教えて頂きました。
    この拡張で一時停止や再開を下記のようにcs側に書きましたが
    命令を実行せずスルーされてしまいます。

    (FindResource("Storyboard1") as Storyboard).Pause();
    (FindResource("Storyboard1") as Storyboard).Resume();

    どうすればよいのでしょうか?
    2009年3月24日 13:33

すべての返信

  • 試せる環境が無いので上手くいくか分かりませんが。
    X:Name属性で名前を定義すれば良いのではないでしょうか?
     
    定義した名前.Begin()
    定義した名前.Pause()
    定義した名前Resume();
    2009年3月24日 13:52
  •  http://msdn.microsoft.com/ja-jp/library/cc903952(VS.95).aspx

    see) 『コードからのリソースの参照』 のセクション

    格納しているResourceDictionaryから取得(Contains)するようです。

    なお、メモに
    >Silverlight 2 では、WPF フレームワークに存在する FindResource メソッドは実装されません。
    と記載されていますので、FindResource は使えないようです。(というか存在しない?)
    2009年3月24日 14:09
  • chamoroさん返信ありがとうございます。
    まず、定義に関してですが

    <Storyboard x:Key="Storyboard1">

    こんな風に定義してあります。
    また、 FindResource は普通に扱えます。
    扱えなかったら
    (FindResource("Storyboard1") as Storyboard).Begin();
    これさえできていない状態です。
    2009年3月24日 14:16
  • 無限極限さん の発言:

    <Storyboard x:Key="Storyboard1">

    <Storyboard x:Name="myStoryboard"

    一番最初に記載しましたが、x:Nameを定義しCS側は下のようにアクセスすれば良いのではないでしょうか?
    myStoryboard.Begin();
    myStoryboard.Pause();
    myStoryboard.Resume();

    無限極限さん の発言:

     FindResource は普通に扱えます。
    扱えなかったら
    (FindResource("Storyboard1") as Storyboard).Begin();
    これさえできていない状態です。

    FindResourceはどのクラスに入っていますか?
    こちらで調べる限り発見できなかったのですが・・・
    少なくともsilverlightのFrameworkElementの中にはFindResourceは存在していないです。
    よろしかったら教えてください。
    2009年3月25日 0:46