У меня есть окно в WPF, которое я хочу отображать с ShowDialog
, и когда окно отображается, оно должно иметь масштабирующую анимацию. Я успешно создал анимацию, и все работает отлично, за исключением одной вещи:WPF Window ScaleTransform анимация
Когда окно приближается к полностью масштабированному состоянию, а функция ослабления срабатывает, внешние края окна, по-видимому, выходят за рамки фактических границ окна и обрезаются , Как я могу использовать эту масштабирующую анимацию с ослаблением и не обрезать ее?
Это масштабирование анимации я использую:
<DoubleAnimation Storyboard.TargetProperty="(Window.RenderTransform).(ScaleTransform.ScaleX)"
BeginTime="0:0:0.0" Duration="0:0:0.4" From="0" To="1">
<DoubleAnimation.EasingFunction>
<BackEase EasingMode="EaseOut" Amplitude="0.25" />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
<DoubleAnimation Storyboard.TargetProperty="(Window.RenderTransform).(ScaleTransform.ScaleY)"
BeginTime="0:0:0.0" Duration="0:0:0.4" From="0" To="1">
<DoubleAnimation.EasingFunction>
<BackEase EasingMode="EaseOut" Amplitude="0.25" />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
EDIT: Причина, по-видимому, клип является то, что функция замедления не перемещает окно, а скорее содержимое внутри окна; по крайней мере, так оно и есть. Окно имеет собственный стиль и верхние углы округлены. Фактическое окно имеет прозрачный фон. Поэтому, когда функция ослабления во внутреннем содержимом достигает размера фактического окна, а жесткие углы 90 градусов отображаются, поскольку содержимое растягивается за пределы размера окна.
Внутренний контент, растянувшийся в этой точке, не должен происходить, поскольку анимация привязана к самому окну, а не к содержимому окна.
прекрасно работает и имеет смысл. – vane