如何在 Silverlight 的代码隐藏中从 UIElement 分离行为?

发布于 2024-08-22 21:04:51 字数 145 浏览 8 评论 0原文

在 Silverlight 3.0 中,我向代码隐藏中的某些 UIElement 添加了自定义行为。

我想稍后在运行时删除该行为。

UIElement 分离已添加行为的 C# 语法是什么?

In Silverlight 3.0 I have added a custom behavior to some UIElement in Code Behind.

I wanted to remove the Behavior later in runtime.

What is the C# syntax to Detach an already added Behavior from an UIElement?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

阳光下的泡沫是彩色的 2024-08-29 21:04:51

我猜您正在谈论从 Blend SDK 中的 Behavior 类派生的行为...

您是否仍然拥有附加该行为时的引用?

MyCustomBehavior myBehavior = new MyCustomBehavior();
myBehavior.Attach(myElement);
...
myBehavior.Detach();

编辑

如果当您想要分离它时不再有对该行为实例的引用,您可以执行以下操作来分离 DependencyObject 上的所有行为:

foreach (var behavior in Interaction.GetBehaviors(myElement))
{
    behavior.Detach();
}

I am guessing you are talking about a behavior deriving from the Behavior<T> class in the Blend SDK...

Do you still have a reference to the behavior from when you attached it?

MyCustomBehavior myBehavior = new MyCustomBehavior();
myBehavior.Attach(myElement);
...
myBehavior.Detach();

EDIT

If you no longer have a reference to the instance of the behavior when you want to detach it you can do something like this to detach all behaviors on a DependencyObject:

foreach (var behavior in Interaction.GetBehaviors(myElement))
{
    behavior.Detach();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文