1

我正在尝试实现一种适用于对象但受第二个对象影响的行为。

例如,它将根据另一个框架元素的距离来改变框架元素的外观。

我对附加行为的危险了解足够多,我会这样定义我的班级:

 public class ChangeWithDistance : Behavior<FrameworkElement>

在行为的某个地方,我需要一个指向另一个控件的名称(?)的依赖属性。

我应该使我的依赖属性的类是什么,以便我可以让这个行为指向另一个控件?

我会将 propdp 指定为代表另一个控件名称的字符串吗?

或者我应该使用另一个类来表示与控件关联的标签(你知道,那个 x:Name 业务..)

或者 propdp 是否应该指向这样的框架元素?

    public static readonly DependencyProperty OtherControl =     
          DependencyProperty.Register("OtherControl", typeof(FrameworkElement)

还是我做一些绑定?

是否有最佳实践来指出一个行为或任何在另一个控件上具有依赖属性的东西?

有没有办法让它显示出来,以便使用混合的用户可以选择另一个控件?

4

2 回答 2

3

我很幸运能够像这样声明我的依赖属性:

 public static readonly DependencyProperty OtherObjectProperty =
        DependencyProperty.Register("OtherObject", typeof (FrameworkElement), typeof (MyBehavior), new UIPropertyMetadata());

然后在 XAML 中将它绑定到我感兴趣的另一个对象,如下所示:

  <Rectangle ....>
       <Interactivity:Interaction.Behaviors>
             <Controls:MyBehavior OtherObject="{Binding ElementName=TheOtherElementNameIWantToReference}" />
       </Interactivity:Interaction.Behaviors>
  </Rectangle>                   
于 2012-09-30T05:45:29.360 回答
0

这是一个很多问题。阅读附加属性:http: //msdn.microsoft.com/en-us/library/ms749011.aspx

简短的回答是您需要使用该RegisterAttached方法,而不是Register.

于 2012-09-29T07:40:17.807 回答