我的应用程序中有一个Image
对象,用户可以拖动它。该对象显示部分透明的图像,因此可以通过它看到窗口背景(本身就是位图)。
我想为这个对象添加图形效果。假设我已经有了这种效果的算法 - 这不是问题。问题是如何将此算法转换为WPF。
所以我试着看看DropShadowEffect
是如何工作的,但是Reflector中显示的实现是空的。我还试着看看我应该覆盖的抽象类Effect
和ShaderEffect
中的哪些方法,并且似乎没有任何与实际渲染效果相关的方法。
那么如何创建自己的效果?
答案 0 :(得分:3)
最好和最快的方法是使用pixel shaders(我认为从WPF 3.5 SP1开始支持)。它需要一些着色器语言(HLSL)知识,但是: - )
这是一个教程:How Do I: Create Custom Pixel Shader Effects for WPF
codeplex上的一个库:Windows Presentation Foundation Pixel Shader Effects Library
包含.NET 4信息的文章(包括也支持Sliverlight的文章):SilverShader – Introduction to Silverlight and WPF Pixel Shaders
答案 1 :(得分:1)
一个非常酷的工具(和资源)是Shazzam它可以帮助你创建效果,它包含一个很好的教程。