none
XAMLで定義したStoryboardをコードから呼び出して実行する方法について RRS feed

  • 質問

  • Visual Studio 2015 Express、C#で、WPFアプリケーションを作っています。

    XAML上で定義したStoryboardをコードから呼び出す方法を教えて頂けませんでしょうか?

    Storyboardを定義したXAML

    <Window x:Class="Test.Testrun"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:Test"
            mc:Ignorable="d"
            Title="Test" Height="400" Width="440" ResizeMode="NoResize">
        <Window.Resources>
            <Storyboard x:Key="Story_PLAY">
                <DoubleAnimation From="40" To="250" Duration="0:0:2"
                                 Storyboard.TargetName="Image_PLAYER01"
                                 Storyboard.TargetProperty="(Canvas.Left)"
                                 BeginTime="0:0:0" DecelerationRatio="0.5" />
                <DoubleAnimation From="40" To="226" Duration="0:0:2"
                                 Storyboard.TargetName="Image_PLAYER02"
                                 Storyboard.TargetProperty="(Canvas.Left)"
                                 BeginTime="0:0:1" DecelerationRatio="0.5" />
            </Storyboard>
    </Window.Resources>

    呼び出したいコード
    GUI上のボタンが押された時に、Storyboard実行→ある処理→Storyboard停止 を実現したいと考えています。

    private async void ButtonSTARTEXE_Click(object sender, RoutedEventArgs e)
            {
                // Storyboard実行
                // ???
    
                // ある処理を実行
                // ・・・
    
                // Storyboard停止
                // ???
    
            }

    以上、よろしくお願いします。

    2017年10月25日 23:00

回答

  • 以下でできると思います。

    var sb = FindResource("Story_PLAY") as Storyboard;
    sb.Begin();


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク ECUENGINE 2017年10月26日 13:57
    2017年10月26日 0:43
    モデレータ

すべての返信

  • 以下でできると思います。

    var sb = FindResource("Story_PLAY") as Storyboard;
    sb.Begin();


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク ECUENGINE 2017年10月26日 13:57
    2017年10月26日 0:43
    モデレータ
  • ご回答ありがとうございます。

    教えて頂いた方法で実行することができました。

    ありがとうございます。

    2017年10月26日 13:58