Анимированная маржа / толщина
Я просто подумал, что уже знаю, как работает синтаксис WPF и XAML.... wrooong.
Я получил сообщение:
'WithEvents' variables can only be typed as classes, interfaces or type parameters with class constraints.
Пожалуйста, вы знаете, почему этот синтаксис неправильный?
Мне нужно использовать одно значение как двойное. Это работает позже с раскадровкой в codebehind.
С уважением
Я просто хочу анимировать красный прямоугольник с раскадровкой по расположению и размеру. Возможно, XAML - это правильное решение?
2 ответа
Чтобы анимировать толщину, используйте раскадровку следующим образом (из примера msdn):
<BeginStoryboard>
<Storyboard>
<!-- BorderThickness animates from left=1, right=1, top=1, and bottom=1 to
left=28, right=28, top=14, and bottom=14 over one second. -->
<ThicknessAnimation
Storyboard.TargetProperty="BorderThickness"
Duration="0:0:1.5" FillBehavior="HoldEnd" From="1,1,1,1" To="28,14,28,14" />
</Storyboard>
</BeginStoryboard>
На самом деле, чтобы анимировать любое свойство, которое принимает значения как "w,x,y,z", вы используете ThicknessAnimation
Мне кажется, что вы хотите сделать, это переместить красный прямоугольник вправо.
В этом случае поместите все это в Canvas
и используйте DoubleAnimation в позиции красного прямоугольника.
В любом случае, ошибка, которую вы получаете, связана не с небольшим фрагментом кода, который вы предоставили. Если вы хотите устранить это, пожалуйста, предоставьте больше кода.
Изменить: так как ThicknessAnimation, кажется, не доступна на WP7, попробуйте это вместо:
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="BorderThickness.Top"
Duration="0:0:1.5" To="15" />
<DoubleAnimation
Storyboard.TargetProperty="BorderThickness.Left"
Duration="0:0:1.5" To="25" />
</Storyboard>
</BeginStoryboard>
Я думаю, что это связано с тем, что вы делаете с MyRectangleMargin в другом месте XAML или с выделенным кодом. Помните, Thickness - это структура, а не класс, поэтому вы не сможете использовать ее в любом месте, где ожидается экземпляр класса.