相关疑难解决方法(0)

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

我很喜欢我的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)

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

wpf xaml expression-blend

6
推荐指数
1
解决办法
3240
查看次数

布尔动画锁定属性

如果我有一个设置属性的BooleanAnimation,该属性将被锁定,并且不能通过任何其他方式更改.

例:

<EventTrigger
    SourceName="myButton"
    RoutedEvent="Button.Click">
    <EventTrigger.Actions>
        <BeginStoryboard>
            <Storyboard>
                <BooleanAnimationUsingKeyFrames
                    Storyboard.TargetName="myCheckBox"
                    Storyboard.TargetProperty="IsChecked"
                    FillBehavior="HoldEnd">
                    <DiscreteBooleanKeyFrame
                        KeyTime="00:00:00"
                        Value="False" />
                </BooleanAnimationUsingKeyFrames>
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger.Actions>
</EventTrigger>
Run Code Online (Sandbox Code Playgroud)

在此示例中,如果单击该按钮,则复选框设置为false,但是,如果用户再次尝试检查复选框,则复选框将无响应.无法通过代码设置IsChecked属性(单击按钮后).

我可以创建另一个动画来更新CheckBox,但这不是我需要的行为.

我也尝试过FillBehavior ="Stop",但这只会导致动画无法正常工作.

silverlight wpf xaml

5
推荐指数
1
解决办法
3369
查看次数

标签 统计

wpf ×2

xaml ×2

expression-blend ×1

silverlight ×1