Мне нужна помощь, чтобы анимировать объект в Circular path. для этого я создаю Method
в LoadEvent
Но я не собираюсь добавлять Storyboard
в этот код. Storyboard
должен изменить местоположение моего Object
в Круговом пути. Круговой путь Расчет по AngelToPointMethod
. Если я SetTargetProperty
до TranslateX
и TranslateY
мой контроль переместится на прямой путь, но мне нужно переместить ангела ангелом.использовать раскадровку в коде. За winrt
вот мой код
public class Test : Canvas
{
private int StartAngle = 215;
private Rectangle _myControl = new Rectangle();
private double _angle;
public double Angle
{
get { return _angle;}
set {_angle = value;}
}
public Test()
{
Loaded += OnLoaded;
}
private void OnLoaded(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
// UpdatePosition(_myControl, StartAngle);
AnimatePositionAtTheFrist(StartOuterAngle);
}
static void OnPropertyChanged(DependencyObject obj,
DependencyPropertyChangedEventArgs args)
{
(obj as CircularSliderControl).OnPropertyChanged(args);
}
void OnPropertyChanged(DependencyPropertyChangedEventArgs args)
{
UpdatePosition(_myControl, StartAngle);
}
private void AnimatePositionAtTheFrist(int startAngle)
{
Duration duration = new Duration(TimeSpan.FromSeconds(1));
Storyboard sb = new Storyboard();
sb.Duration = duration;
//var da = new DoubleAnimationUsingKeyFrames();
var da = new DoubleAnimation();
da.EnableDependentAnimation = true;
da.Duration = duration;
da.From = 0;
da.To = startAngle;
SineEase easingFunction = new SineEase();
easingFunction.EasingMode = EasingMode.EaseOut;
da.EasingFunction = easingFunction;
Storyboard.SetTarget(da, this);
Storyboard.SetTargetProperty(da, "Angle"); // error: Cannot resolve TargetProperty Angle on specified object.
sb.Children.Add(da);
sb.Begin();
}
private void UpdatePosition(Rectangle _myControl, int StartAngle)
{
var startPoint = AngelToPoint(StartAngle);
var tr = new CompositeTransform();
tr.TranslateX = startPoint.X;
tr.TranslateY = startPoint.Y ;
_myControl.RenderTransform = tr;
}
}
Update
Я обновил свой код, как и выше, но я столкнулся с двумя новой проблемы
1: как справиться с propertyChanged
из Angle
собственности?
Выполнение, которое я сделал, не так ли?
Мне нужно запустить UpdatePosition
только когда значение изменения Angle
не все Свойства.
2: как SetTargetProperty
до Angle
недвижимость?
Может быть, как вдохновение: http://www.charlespetzold.com/blog/2012/03/The-Animated-Pie-Slice- in-Windows-8.html – WiredPrairie