簡體   English   中英

如何將XAML代碼的動畫轉換為C#

[英]How do I Convert the Animation of XAML Code to C#

如何動態地將這段XAML代碼轉換為C#中的代碼隱藏代碼?

XAML

<Window.Triggers>
    <EventTrigger RoutedEvent="Window.Loaded">
        <BeginStoryboard>
            <Storyboard>
                <DoubleAnimation BeginTime="00:00:00"    
                            From="200"
                            To="500"
                            Storyboard.TargetProperty="(Window.Top)"    
                            AccelerationRatio=".1"   
                            Duration="0:0:.2" />
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
</Window.Triggers>

您不需要代碼背后的Storyboard,只能使用DoubleAnimation。

public MainWindow()
{
    InitializeComponent();
    Loaded += (s, e) =>
       {
          DoubleAnimation animation = new DoubleAnimation(200, 500, 
                                          TimeSpan.FromSeconds(0.2));
          animation.AccelerationRatio = 0.1;
          BeginAnimation(Window.TopProperty, animation);
       };
}

試試這個:

XAML

<Window x:Class="CreateAnimationinCodeHelp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Name="MyWindow" Loaded="Window_Loaded"
        Title="MainWindow" Height="350" Width="525">

    <Grid>
        <Label Background="AliceBlue" Content="Test" />
    </Grid>
</Window>

Code-behind

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        Storyboard sb = new Storyboard();

        DoubleAnimation doubleAnimation = new DoubleAnimation();
        doubleAnimation.From = 200;
        doubleAnimation.To = 500;
        doubleAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.2));
        doubleAnimation.AccelerationRatio = 0.1;

        Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("(Window.Top)"));
        sb.Children.Add(doubleAnimation);

        MyWindow.BeginStoryboard(sb);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM