Можно ли неявно анимировать размер элемента с помощью расширений XAML Composition?
Я пытаюсь добиться автоматической анимации изменения размера элементов. Я думаю, что есть некоторое взаимодействие Composition и XAML, которое я не совсем понимаю.
Сначала я попытался использовать расширения XAML из инструментария:
<TextBox x:Name="TextBoxControl" VerticalAlignment="Center" Width="50">
<animations:Implicit.Animations>
<animations:Vector3Animation Target="Size" Duration="0:0:0.5"/>
</animations:Implicit.Animations>
</TextBox>
... и надеялся, что он автоматически оживит TextBox при расширении, чтобы вместить больше текста. Там нет игральных костей. Затем я попытался обернуть TextBox во внешнюю сетку, вместо этого прикрепить неявную анимацию к сетке. Без изменений.
Затем я попытался анимировать размер TextBox Visual вручную:
var visual = ElementCompositionPreview.GetElementVisual(TextBoxControl);
var newSize = new Vector2(visual.Size.X + 20f, visual.Size.Y);
visual.Size = newSize;
Как ни странно, это привело к The Parameter is incorrect
исключение при попытке установить новый размер.
Наконец, я попытался изменить TextBox UIElement
ширина вместо визуальной ширины:
TextBoxControl.Width += 20;
... что тоже не оживило.
Наконец, в отчаянии я попытался оживить SCALE, выполнив то же самое:
XAML
<TextBox x:Name="TextBoxControl" VerticalAlignment="Center" Width="50">
<animations:Implicit.Animations>
<animations:Vector3Animation Target="Scale" Duration="0:0:0.5"/>
</animations:Implicit.Animations>
C#
var visual = ElementCompositionPreview.GetElementVisual(TextBoxControl);
visual.Scale = new Vector3(visual.Scale.X + 0.1f, visual.Scale.Y + 0.1f, visual.Scale.Z);
... который работал именно так, как ожидалось. Когда я запустил код C#, масштаб TextBox увеличился и стал анимированным.
Так есть ли способ добиться автоматической анимации изменения размера элементов интерфейса с помощью неявной анимации?