2013-06-26 19 views
1

Привет Я хочу увеличить изображение до определенной точки с помощью анимации, и это не сработает.C# WPF анимация масштабирования изображения по коду

XAML:

<Window x:Class="AnimationTest.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="720" Width="1280"> 
    <Grid> 
     <Image Height="681" HorizontalAlignment="Left" Name="image1" Stretch="None" VerticalAlignment="Top" Width="1258" Source="/AnimationTest;component/Images/world.jpg" /> 
     <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="1171,12,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" /> 
    </Grid> 
</Window> 

CS:

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

     private void button1_Click(object sender, RoutedEventArgs e) 
     { 
      DoubleAnimation da = new DoubleAnimation(); 
      da.From = 0; 
      da.To = 1000; 
      da.Duration = new Duration(TimeSpan.FromSeconds(1)); 
      image1.BeginAnimation(ScaleTransform.CenterXProperty, da); 

     } 
    } 
} 
+0

В чем вопрос? Что именно не работает? Любые исключения? –

+0

Ничего не происходит, когда я нажимаю кнопку – Dim

+0

Предполагаю, что вы используете неправильное свойство, ваш код работает, когда я использую что-то вроде 'Image.WidthProperty'. Вы не используете ScaleTransform как объект 'Image.RenderTransformProperty' обычно? – Herm

ответ

1

я создал простой образец для вашего requirement.use RenderTransformOrigin масштабировать к изображению от центральной точки (0.5,0.5)

XAML 

    <Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="40"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <Slider x:Name="zoomSlider" Minimum="0" Maximum="10" Value="1" /> 
    <Image Source="Jellyfish.jpg" Grid.Row="1"> 
     <Image.RenderTransform> 
      <ScaleTransform ScaleX="{Binding ElementName=zoomSlider,Path=Value}" ScaleY="{Binding ElementName=zoomSlider,Path=Value }"/> 
     </Image.RenderTransform> 
    </Image> 
</Grid>