2014-11-14 36 views
0

我使用此代碼從左至右 動畫影像,但我想要=「100」到窗寬 如何改變當窗口加載或調整大小時DoubleAnimation「To」?C#WPF變化DoubleAnimation是「到」當負載(在<Window.Resources>)

XAML:

<Window x:Class="WpfApplication1.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525" ResizeMode="CanResize" WindowState="Normal" WindowStyle="ToolWindow" Loaded="Window_Loaded"> 

    <Window.Resources> 
    <Storyboard x:Key="PlayAnimation" Storyboard.TargetProperty="(Canvas.Left)"> 
     <DoubleAnimation From="0" Duration="0:0:1" RepeatBehavior="Forever" To="100" /> 
    </Storyboard> 
    </Window.Resources> 

    <Grid> 
    <Grid.Background> 
     <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
     <GradientStop Color="White" Offset="1" /> 
     <GradientStop Color="#FF5AC0FF" Offset="0" /> 
     </LinearGradientBrush> 
    </Grid.Background> 


    <Canvas>    
     <Image Cursor="Hand" Height="205" HorizontalAlignment="Left" Margin="74,78,0,0" Name="image2" Source="I:\a.png" Stretch="Fill" VerticalAlignment="Top" Width="200" /> 
    </Canvas>  
    </Grid>  
</Window> 

C#代碼:

private void Window_Loaded(object sender, RoutedEventArgs e) 
{ 
    Storyboard sb = this.FindResource("PlayAnimation") as Storyboard;   
    Storyboard.SetTarget(sb, this.image2); 
    sb.Begin(); 
} 

回答

0

如果我正確理解你的問題,你想的To更改爲代碼隱藏一些不同的值,這樣的事情:

Storyboard sb = this.FindResource("PlayAnimation") as Storyboard;   
(sb.Children[0] as DoubleAnimation).To = 200; 
Storyboard.SetTarget(sb, this.image2); 
sb.Begin();