有没有办法在WPF中为图像的边缘设置动画?

时间:2011-03-07 01:29:13

标签: wpf animation

我们的WPF应用程序中有一些图标。我们想做一个动画,就像一个围绕动画边缘的小灯塔,只是无休止地绕过它,并按照图标的轮廓。我们找到了一种方法,通过手动创建围绕图标的路径并使信标遵循该路径(与轮廓相匹配),但由于我们有许多不同形状的图标,因此手动工作太多了。我们想知道WPF是否有办法自动执行此操作,因此我们只需编程一次,然后使用其余图标。

任何建议都非常欢迎。

感谢。

修改

Something like this

2 个答案:

答案 0 :(得分:1)

吉。为此使用wpf动画功能是不是有点过分?难道你不能在Photoshop中创建一堆小动画或使用别的东西然后把它们放进去吗?

像动画.GIF一样。唯一的问题是:如果我记得正确,WPF就会将.GIF动画作为嵌入资源出现问题。所以你必须从磁盘加载它们。或者您可以将它们作为嵌入式资源,但是您必须将它们临时提取到磁盘,然后将它们加载到应用程序窗口中。

答案 1 :(得分:1)

如果您使用的是.NET 3.5 SP1或更高版本而且需要代码解决方案而不是动画GIF,我的建议是Pixel Shader。您需要编写自己的Pixel Shader,执行以下操作:

  1. 检测边缘。 http://www.codeproject.com/KB/openGL/EdgeDetection.aspx
  2. 采用可以使用指示信标位置的故事板进行动画处理的输入参数。 http://www.codeproject.com/KB/dialog/WpfParentWindowShader.aspx
  3. 突出显示信标位置参数指示的边缘,并返回图像中所有其他点的原始颜色。
  4. 如果您尚未使用Pixel Shaders,我建议您下载Shazzam工具http://shazzam-tool.com/。它包括一个交互式开发环境,用于在简单图像上创建和测试着色器,还包含大量带有源代码的Pixel Shaders,可帮助您了解它们。