1

基本的に、単純な絵コンテ アニメーションを自動的に再生するのではなく、ボタンでアクティブにするにはどうすればよいですか? ここで通常のボタン、トグル ボタン、トグル スイッチを試していますが、どれも機能しませんでした。

ボタンをクリックするとドアの画像が右に移動し、もう一度クリックすると左に戻るようにします。クリックすると、動作を無期限に繰り返す必要があります。

MainPage.xaml ファイルには何が入りますか。

<Grid>
    <Grid.Background>
        <ImageBrush ImageSource="Assets/1.png"/>
    </Grid.Background>

    <Image Source="Assets/RightDoor.png" x:Name="rightdoor" HorizontalAlignment="Center" Height="1000" Margin="276,166,-2665,-398" VerticalAlignment="Top" Width="3755">
        <Image.RenderTransform>
            <!--<CompositeTransform x:Name="ImageTransform"/>-->
            <TransformGroup>
                <TranslateTransform x:Name="rdformTranslate" X ="1" Y="1" />
                <ScaleTransform x:Name ="rdformScale" ScaleX=".25" ScaleY=".25" />
            </TransformGroup>
        </Image.RenderTransform>
    </Image>

<ToggleButton x:Name="toggleButton" Content="ToggleButton" HorizontalAlignment="Left" Margin="493,572,0,0" VerticalAlignment="Top" Click="ToggleBtn"/>
<Button Content="Button" HorizontalAlignment="Left" Margin="772,572,0,0" VerticalAlignment="Top" Click="BtnTest/>
<ToggleSwitch Header="ToggleSwitch" HorizontalAlignment="Left" Margin="202,548,0,0" VerticalAlignment="Top" Toggled="ToggleButton"/>
</Grid>

MainPage.xaml.cs ファイル

    private void ToggleButton(object sender, Windows.UI.Xaml.RoutedEventArgs e)
    {
        Storyboard myStoryboard;
        myStoryboard = (Storyboard)this.Resources["rdformTranslate"];   
        myStoryboard.Begin();
    }

    private void ToggleBtn(object sender, Windows.UI.Xaml.RoutedEventArgs e)
    {
        Storyboard myStoryboard;
        myStoryboard = (Storyboard)this.Resources["rdformTranslate"];
        myStoryboard.Begin();
    }

    private void BtnTest(object sender, Windows.UI.Xaml.RoutedEventArgs e)
    {
        Storyboard myStoryboard;
        myStoryboard = (Storyboard)this.Resources["rdformTranslate"];
        myStoryboard.Begin();
    }

リソース ディクショナリ ファイル...

<Storyboard x:Name="rdformTranslate">
    <DoubleAnimation Storyboard.TargetName="rdformTranslate"
                                 Storyboard.TargetProperty="X"
                                 From="0" To="500" Duration="0:0:1"
                                 AutoReverse ="True" RepeatBehavior="Forever" />
</Storyboard>

アプリケーションは実行可能ですが、ボタンをクリックするとすぐに「クラッシュ」します。問題を解決するための助けをいただければ幸いです。


コメントから追加されたエラーを編集

タイプ 'System.Runtime.InteropServices.COMException' の例外が mscorlib.dll で発生しましたが、ユーザー コードでは処理されませんでした WinRT 情報: E_NETWORK_ERROR 追加情報: 未特定のエラー この例外のハンドラーがある場合、プログラムは安全に続行される可能性があります。

4

1 に答える 1

0

の名前を変更して、Storyboard固有のものにしてください。<DoubleAnimation Storyboard.TargetName="rdformTranslate"> の同じ名前を設定すると、アプリがクラッシュすると思いますStoryboard

Xまた、そのプロパティをターゲットにするために、変換変換オブジェクトに名前を付ける必要はありません。試してみてくださいStoryboard.TargetProperty = "(UIElement.RenderTransform).(TranslateTransform.X)"。のプロパティをX設定しているので、おそらくデフォルト値を指定する必要さえありません。FromDoubleAnimation

<RenderTransform>...</RenderTransform>xamlのブロックを安全に置き換えることができます<RenderTransform><TranslateTransform/></RenderTransform>

于 2013-12-02T18:54:18.920 に答える