Привязать свойство класса к выражению UWP Composition API - PullRequest
1 голос
/ 01 ноября 2019

Я пытаюсь постоянно анимировать UserControl в UWP, используя новый API композиции. Я думал об использовании функции Expression и привязке свойства класса Vector3 TargetPosition к выражению. Но когда я пытаюсь, targetPosition не обновляется, только если я вручную сбрасываю значение в выражении, используя _propSet.InsertVector3("targetPos", TargetPosition);

Следующий код показывает мой подход:

public Vector3 TargetPosition;

[...]

_propSet = _rootVisual.Compositor.CreatePropertySet();
_propSet.InsertVector3("targetPos", TargetPosition);

var posAnim = ExpressionFunctions.Lerp(_rootVisual.GetReference().Offset,
            _propSet.GetReference().GetVector3Property("targetPos"),
            0.05f);

_rootVisual.StartAnimation("Offset", posAnim);

Этоможно привязать свойство класса к анимации выражения API составления UWP? При использовании другого визуального смещения в качестве целевой позиции значение обновляется автоматически, не устанавливая его вручную.

1 Ответ

0 голосов
/ 01 ноября 2019

Возможно ли привязать свойство класса к анимации выражения API композиции UWP?

В UWP целью привязки является DependencyProperty, вот document .

, что означает, что вы не можете установить анимацию Composition Binding.

Update

Если вы хотитечтобы что-то автоматизировать, изменив переменную (например, запустив анимацию), вы можете внести некоторые изменения в свою переменную.

private Vector3 _targetPosition;
public Vector3 TargetPosition
{
    get => _targetPosition;
    set
    {
        _targetPosition = value;
        DoSomething(value);
    }
}

Таким образом, метод DoSomething будет вызываться каждый раз, когда вы изменяете TargetPosition.

С уважением.

...