Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用WriteableBitmap创建简单动画?_C#_Silverlight - Fatal编程技术网

C# 如何使用WriteableBitmap创建简单动画?

C# 如何使用WriteableBitmap创建简单动画?,c#,silverlight,C#,Silverlight,大家好 我正试图学习一些Silverlight的基础知识,因此决定编写一个简单的Mandelbrot集合绘图应用程序。当然是在银色的灯光下 应用程序基本完成。我使用一个WriteableBitmap来处理像素,并使用一个放在空表单上的简单图像来显示这个位图(使用Source属性)。我甚至成功地控制了分形的缩放和移动 现在我想通过添加一点动画来增加一些趣味性;我知道我不能进行分形移动,因为它是一个标量图形对象,但例如,当我放大时,如果初始缩放是一个平滑的动画,那就更好了,之后应用程序将重新计算新的

大家好

我正试图学习一些Silverlight的基础知识,因此决定编写一个简单的Mandelbrot集合绘图应用程序。当然是在银色的灯光下

应用程序基本完成。我使用一个WriteableBitmap来处理像素,并使用一个放在空表单上的简单图像来显示这个位图(使用Source属性)。我甚至成功地控制了分形的缩放和移动

现在我想通过添加一点动画来增加一些趣味性;我知道我不能进行分形移动,因为它是一个标量图形对象,但例如,当我放大时,如果初始缩放是一个平滑的动画,那就更好了,之后应用程序将重新计算新的“放大并像刀一样锋利”图像。类似地,如果我拖动图像(用于移动分形),鼠标离开图像区域,如果分形平滑地返回到其初始位置(就像现在一样,它只是在恢复初始设置时“捕捉”回来),那就太好了

我的问题是,我不知道在动画中控制哪个参数。例如,我使用ScaleTransform进行缩放,但这用于在位图本身上渲染WriteableBitmap,而不是使用图像对象的变换属性。我这样做是因为当我开始操作图像属性时,整个图像开始在表单周围移动,而我希望它的边界保持不变


我怀疑我可能试图做一些Silverlight一开始并不真正想做的事情(我已经开始做错了整件事),但如果我能添加这样的小动画,那就太好了。因此,任何提示都值得欣赏。

听起来您希望使用Silverlight动画引擎为自己的自定义属性设置动画,这些属性控制图像显示,而不是图像元素或容器

如果用于控制图像外观的属性以双重方式显示,则动画系统可以使用基本的双重动画对象随时间平滑地更改设置。您甚至可以在Expression Blend中编写动画


动画引擎肯定会为您提供缓和功能等,以平滑运动。如果我有更多关于你的对象是如何构造的细节,我可以更具体一些,但我希望这能有所帮助

听起来很有趣,但如果你的目的是“学习silverlight的基本知识”,那你就远远偏离了轨道。为什么?我不是艺术家,虽然我可以获得Expression Blend,但我更感兴趣的是学习Silverlight的内部如何工作,因此对代码本身进行操作。:]好吧,如果我所描述的太离奇了,那么就这样吧:我该如何创建一个框架来限制UI元素的显示方式?例如:我有一个200x200的图像,但我只想显示它的100x100部分,而不想调整大小。我怎么能这么做?