【发布时间】:2012-10-11 20:35:05
【问题描述】:
我正在尝试通过从Effect 继承来创建自定义效果。
<Ellipse Width="75" Height="75" Stroke="LightGray">
<Ellipse.Effect>
<local:GlowEffect GlowRadius="10"/>
</Ellipse.Effect>
</Ellipse>
问题出在我的效果代码中。我无法获得效果属性的父级,在这种情况下,就是那个椭圆。您不能使用VisualTreeHelper,因为在构造 GlowEffect 时(在其构造函数中),椭圆不会加载到可视化树中。我还没有找到解决这个问题的方法,或者我只是用错误的方式解决这个问题。
【问题讨论】:
-
您可以尝试将
x:Name=""添加到父级,然后使用ElementName绑定 -
那行不通,因为名称可能因用户而异。这样做的目的是构建一个通用的效果器,而不必依赖于虚构的约定。必须有一套方法来做到这一点,微软是如何用 BlurEffect 类做到的......?
标签: c# silverlight shader effect visualtreehelper