Я реализовал анимацию перемещения элемента управления сеткой следующим образом:
<Grid
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.Style>
<Style TargetType="Grid">
<Style.Triggers>
<DataTrigger
Binding="{Binding ElementName=rootLayout, Path=IsVisible}"
Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ThicknessAnimation
Storyboard.TargetProperty="Margin"
From="-500,0,0,0"
To="0,0,0,0"
Duration="0:0:0.5" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<Border
Grid.RowSpan="2"
Background="Black"
CornerRadius="6" >
<Border.Effect>
<DropShadowEffect />
</Border.Effect>
</Border>
<TextBlock
Grid.Row="0"
Width="400"
Height="200"
Margin="20,20,20,10"
Text="{Binding Path=MessageText}" />
<Button
Grid.Row="1"
Margin="20,5,20,15"
HorizontalAlignment="Right"
Width="75"
Content="OK"
Command="{Binding Path=CloseDialogCommand}" />
</Grid>
Анимация работает нормально, но уродливо.Это шаткий / нервный / отрывистый, и это действительно выглядит непрофессионально.Есть ли способ улучшить это?Использую ли я правильный подход с анимацией изменения значения свойства Margin
для перемещения сетки?Я прочитал о RenderTransform
, но я не знаю, как использовать его в моем случае.
Также анимация выглядит неестественно.Я знаю, что это можно улучшить, но я не знаю как.Каковы эти свойства и могут ли они помочь мне улучшить мою анимацию:
AccelerationRatio
DecelerationRatio
EasingFunction
IsAdditive
IsCumulative
SpeedRatio
Спасибо за помощь!
PS Я пытаюсь разместить как можно больше кода в XAML, поэтому я бы предпочел этот подход, но на самом деле, если есть что-то, чтобы улучшить это ...