Hallo,
ich versuche gerade meine Buttons zu animieren und zwar nicht so ruckartig sondern mit einem Fade Effekt und zwar im Scaling.
Über die ControlTemplate.Trigger und dem entsprechenden Event klappt das schon wenn ich meine Defaultwerte einfach in Höhe und Breite ändere aber das ist nicht ganz was ich möchte. Da fehlt ja komplett der Fade Effekt.
Nun habe ich mir um den Button ein Canvas gemacht und im Code sieht es nun so aus:
Ich bekomme hier aber keine Änderungen hin... für Opacity würde das funktionieren aber für die Höhe/Breite.. komm ich leider nicht weiter. Auch weiß ich gar nicht, wenn ich ein Scale aufs Canvas mache, ich den Button damit überhaupt vergrößern kann.
ich versuche gerade meine Buttons zu animieren und zwar nicht so ruckartig sondern mit einem Fade Effekt und zwar im Scaling.
Über die ControlTemplate.Trigger und dem entsprechenden Event klappt das schon wenn ich meine Defaultwerte einfach in Höhe und Breite ändere aber das ist nicht ganz was ich möchte. Da fehlt ja komplett der Fade Effekt.
Nun habe ich mir um den Button ein Canvas gemacht und im Code sieht es nun so aus:
C#:
private void On_Hover(object sender, MouseEventArgs e)
{
Storyboard.SetTargetProperty(widthAnimation, new PropertyPath(ScaleTransform.ScaleXProperty));
Storyboard.SetTarget(widthAnimation, (sender as Canvas));
Storyboard.SetTargetProperty(heightAnimation, new PropertyPath(ScaleTransform.ScaleYProperty));
Storyboard.SetTarget(heightAnimation, (sender as Canvas));
Storyboard s = new Storyboard();
s.Children.Add(widthAnimation);
s.Children.Add(heightAnimation);
s.Begin();
}
DoubleAnimation widthAnimation = new DoubleAnimation
{
From = 1,
To = 1.2,
Duration = TimeSpan.FromSeconds(1)
};
DoubleAnimation heightAnimation = new DoubleAnimation
{
From = 1,
To = 1.2,
Duration = TimeSpan.FromSeconds(1)
};
XML:
<StackPanel Grid.Column="1" Grid.Row="2" Height="100">
<Canvas MouseEnter="On_Hover" MouseLeave="On_Leave" Name="Test" Width="60" Height="60" Background="Aqua">
<Button x:Name="First" Template="{DynamicResource FirstBtn}"/>
</Canvas>
</StackPanel>
Ich bekomme hier aber keine Änderungen hin... für Opacity würde das funktionieren aber für die Höhe/Breite.. komm ich leider nicht weiter. Auch weiß ich gar nicht, wenn ich ein Scale aufs Canvas mache, ich den Button damit überhaupt vergrößern kann.