1
텍스트 상자를 페이드 인하거나 왼쪽 (또는 임의의 x/y 위치)으로 움직 이도록 간단히 애니메이트하려고합니다. 어떻게하면 될까요?WPF에서 단추/텍스트 상자 또는 모든 컨트롤을 슬라이드하는 방법은 무엇입니까?
그리드 내부에 있다면 중요할까요?
public static void FadeIn(UIElement element, int xOffset, TimeSpan duration)
{
Transform tempTrans = element.RenderTransform;
TranslateTransform trans = new TranslateTransform(xOffset, 0);
TransformGroup group = new TransformGroup();
if (tempTrans != null) group.Children.Add(tempTrans);
group.Children.Add(trans);
DoubleAnimation animTranslate = new DoubleAnimation(0, (Duration)duration);
animTranslate.EasingFunction = new CubicEase() { EasingMode = EasingMode.EaseOut };
DoubleAnimation animFadeIn = new DoubleAnimation(0, 1, (Duration)duration) { FillBehavior = FillBehavior.Stop };
animTranslate.Completed += delegate
{
element.RenderTransform = tempTrans;
};
element.RenderTransform = trans;
element.BeginAnimation(UIElement.OpacityProperty, animFadeIn);
trans.BeginAnimation(TranslateTransform.XProperty, animTranslate);
}
작용 중 일부는 질문 주시기 취소되지 않은 경우 :
안녕하세요. 덕분에 도움이됩니다. 왜 EasingFunction을 사용했는지 (그리고 왜 CubicEase를 사용했는지) 말해 줄 수 있습니까? – neebz
컨트롤이 너무 갑자기 멈추지 않도록 그냥 유창하고 멋지게 보입니다. –
오, 그래, 입방 용이성에 대해 잊어 버렸습니다. 왜냐하면 처음 움직임의 속도와 부식의 부드러움/지속 시간 사이에 좋은 절충안을 구성한다고 생각하기 때문입니다. 이 사이트의 그래프를 비교해보십시오 : http://msdn.microsoft.com/en-us/library/ee308751.aspx –