Chcę skorzystać z tej animacji na błędy, jak ten pokazany here:wstrząsnąć animacja (wersja 3d)
Jak to osiągnąć w WPF? Mam wrażenie, że powinno to być połączenie (kompozycja?) Wielu transformacji, ale które i jak dokładnie?
Oto rozrusznik (mcve lub nazywają to „moja próba”), który jest brzydki i nie jest nawet blisko tego, co chcę:
<Grid>
<Border x:Name="border"
Width="200"
Height="200"
BorderBrush="Black"
BorderThickness="1"
CornerRadius="4"
Background="LightBlue"
RenderTransformOrigin="0.5,0">
<Border.RenderTransform>
<TransformGroup>
<ScaleTransform />
<SkewTransform />
<RotateTransform />
<TranslateTransform />
</TransformGroup>
</Border.RenderTransform>
<Border.Effect>
<DropShadowEffect BlurRadius="20" />
</Border.Effect>
<Button VerticalAlignment="Bottom"
HorizontalAlignment="Center"
Margin="0,0,0,10"
Padding="5"
Content="Click">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard FillBehavior="Stop">
<DoubleAnimation Storyboard.TargetName="border"
Storyboard.TargetProperty="RenderTransform.Children[1].(SkewTransform.AngleX)"
To="5" Duration="0:0:0.1"/>
<DoubleAnimation Storyboard.TargetName="border"
Storyboard.TargetProperty="RenderTransform.Children[1].(SkewTransform.AngleX)"
To="-5"
BeginTime="0:0:0.1"
Duration="0:0:0.2" />
<DoubleAnimation Storyboard.TargetName="border"
Storyboard.TargetProperty="RenderTransform.Children[1].(SkewTransform.AngleX)"
To="5"
BeginTime="0:0:0.3"
Duration="0:0:0.2" />
<DoubleAnimation Storyboard.TargetName="border"
Storyboard.TargetProperty="RenderTransform.Children[1].(SkewTransform.AngleX)"
BeginTime="0:0:0.5"
Duration="0:0:0.1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
</Border>
</Grid>
Istnieje wiele stanowisk 2d wytrząsania wokół (click, click), ale potrzebuję animacji, która mówi "jesteś w błędzie", a nie tej, która mówi "tańczmy".
Wygląda świetnie, dzięki. Nie jestem pewien, czy to pasuje (trzeba sprawdzić wady korzystania z 'ViewPort3D'), ale animacja wygląda podobnie do poszukiwanych. – Sinatr