对CroppedBitmap SourceRect Y属性进行动画处理

时间:2019-05-05 06:30:38

标签: c# wpf

我想对Int32Rect Y值更改中的wpf图像进行动画处理。 如何设置我的wpf图像DependencyObject(Int32Rect)值?

示例:

<Image Height="25" Width="25" Name="image3">
        <Image.Source>
            <CroppedBitmap Source="/LoadingCircle;component/Images/loading_circle24.png">
                <CroppedBitmap.SourceRect>
                    <Int32Rect X="0" Y="0" Width="25" Height="25"/>
                </CroppedBitmap.SourceRect>
            </CroppedBitmap>
        </Image.Source>
    </Image>

2 个答案:

答案 0 :(得分:0)

Int32Rect是一个结构。

因此不是依赖对象,因此您必须先为其中的任何一个属性设置动画。

我不确定SourceRect是否是依赖项属性,但我怀疑这可能是学术性的。

我认为您当前的方法不太可行。

您可以考虑在图像上设置动画片段。

这本身很棘手,因为动画只能在您指定的几何图形的起始范围内工作。您可能需要几何的某些部分来扩展边界。

或者。

您还可以做其他事情。

我想这是一个加载动画,也许您的要求不是一成不变的。

答案 1 :(得分:0)

除了不能为Int32Rect结构实例的属性设置动画之外,还不能为CroppedBitmap类的属性设置动画。

尽管SourceRect是依赖项属性,但只能在初始化CroppedBitmap实例期间设置其值。原因是该类实现了ISupportInitialize接口。

请参见Remarks

  

CroppedBitmap实现ISupportInitialize接口,以优化多个属性上的初始化。属性更改只能在对象初始化期间发生。调用BeginInit表示初始化已开始,调用EndInit表示初始化已完成。初始化后,属性更改将被忽略。