如何从Silverlight代码背后的UIElement中分离行为?

kan*_*irk 4 silverlight silverlight-3.0 uielement

在Silverlight 3.0中,我UIElement在Code Behind中为某些人添加了自定义行为.

我想稍后在运行时删除行为.

从一个已经添加的行为中删除已经添加的行为的C#语法是UIElement什么?

Dan*_*air 7

我猜你在谈论从Behavior<T>Blend SDK中的类派生的行为......

您是否仍然可以参考附加时的行为?

MyCustomBehavior myBehavior = new MyCustomBehavior();
myBehavior.Attach(myElement);
...
myBehavior.Detach();
Run Code Online (Sandbox Code Playgroud)

编辑

如果在要分离行为时不再引用行为实例,则可以执行以下操作来分离DependencyObject上的所有行为:

foreach (var behavior in Interaction.GetBehaviors(myElement))
{
    behavior.Detach();
}
Run Code Online (Sandbox Code Playgroud)