Rendertransform wpf/code behind

本文关键字:behind code wpf Rendertransform | 更新日期: 2023-09-27 18:13:24

我的视图中有一个图像,我想在特殊事件发生时将其旋转45度。但是我总是得到这个错误:

无法解析属性路径中的所有属性引用"RenderTransform。角'

我需要设置什么类型的属性路径来完成这个?

var dbAscending = new DoubleAnimation(0, 45, new Duration(TimeSpan.FromMilliseconds(1000)));
var storyboard = new Storyboard();
storyboard.Children.Add(dbAscending);
Storyboard.SetTarget(dbAscending, uc.Cross);
Storyboard.SetTargetProperty(dbAscending, new PropertyPath("RenderTransform.Angle"));
storyboard.Begin();

Rendertransform wpf/code behind

你必须分配一个RotateTransform到你的图像的RenderTransform,使你的故事板工作,例如:

<Image RenderTransformOrigin="0.5,0.5" ...>
    <Image.RenderTransform>
        <RotateTransform x:Name="imageRotation"/>
    </Image.RenderTransform>
</Image>

虽然你可以用Storyboard来制作动画,但是直接在RotateTransform对象上启动动画可能会更简单:

var rotationAnimation = new DoubleAnimation(45, TimeSpan.FromSeconds(1));
imageRotation.BeginAnimation(RotateTransform.AngleProperty, rotationAnimation);

RenderTransform没有角度属性。确保你要旋转的元素的rendertransform属性有一个RotationTransformation。

new PropertyPath("(UIElement.RenderTransform).(RotateTransform.Angle)"

如果您将旋转添加到TransformGroup, PropertyPath将是(假设旋转是该组的第一个子):

new PropertyPath("(UIElement.RenderTransform).(TransformGroup.Children)[0].(RotateTransform.Angle)"