是否可以使用样式或模板应用混合行为?

Ser*_*hov 6 wpf xaml expression-blend

我很喜欢我的Blend行为,动作和触发器的小集合 - 它们易于使用且功能强大.但我仍然无法弄清楚如何避免在每个元素的基础上应用它们.例如,如果我有这样的行为:

<Rectangle>
    <i:Interaction.Behaviors>
        <il:MouseDragElementBehavior/>
    </i:Interaction.Behaviors>
</Rectangle>
Run Code Online (Sandbox Code Playgroud)

我的窗口中有一些可拖动的矩形,每个矩形都必须具有可拖动的上述标记.我想做的是能够写出这样的东西:

<Style x:Key="RectangleStyle" TargetType="{x:Type Rectangle}">
    <Setter Property="i:Interaction.Behaviors" 
        Value="il:MouseDragElementBehavior"/>
</Style>
Run Code Online (Sandbox Code Playgroud)

它可以是样式,模板或其他一些避免行为或动作标记重复的方法.到目前为止我提出的最佳解决方案是为容器创建一个特殊的行为(当附加时,它枚举附加到子事件的子项).有任何想法吗?

小智 3

我遇到了同样的问题,并在我的博客上发布了如何创建附加属性来解决 Blend SDK 的这个缺点。