在厚度动画中改变属性

时间:2015-04-17 03:29:09

标签: wpf xaml animation

我在我的项目中使用标签以厚度动画显示移动样式中的一些新闻,但是在动画完成后我无法更改标签的内容。我该怎么办?

首先,当窗口加载时,我使用下面的代码激活厚度动画

<Window.Triggers>
    <EventTrigger RoutedEvent="Window.Loaded">
        <BeginStoryboard>
            <Storyboard TargetName="MyLabel">
                <ThicknessAnimation Storyboard.TargetProperty="Margin" SpeedRatio="0.8" RepeatBehavior="Forever"
                                    FillBehavior="HoldEnd" From="0,0,0,0" To="100,0,0,0" />
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
</Window.Triggers>

然后我在标签上设置样式

<Style TargetType="Label">
<Style.Triggers>    
  <MultiDataTrigger>
    <MultiDataTrigger.Conditions>
      <Condition Binding="{Binding ElementName=MyLabel, Path=Margin}" Value="100,0,0,0" />
    </MultiDataTrigger.Conditions>
    <Setter Property="Visibility" Value="Collapes" />
  </MultiDataTrigger>
</Style.Triggers>

我尝试使用IsVisibleChanged更改内容,但它无效。

1 个答案:

答案 0 :(得分:0)

根据您的代码段,第一个问题是您的MultiDataTrigger。你有条件,后面的setter尝试这样的事情,看看它是否有效

<MultiDataTrigger>
<MultiDataTrigger.Conditions>
  <Condition Property="Visibility" Value="Collapsed" />
</MultiDataTrigger.Conditions>
<Setter Binding="{Binding ElementName=Label1, Path=Margin}" Value="0,0,0,0"/>

条件标记用于您要查找的事件或属性,以触发 Setter 标记,该标记将设置您要更改的元素的属性。

同样,MultiDataTrigger可能不是更改边距所需的标记,此代码应该更简单

<Style TargetType="Label">
<Style.Triggers>    
<Trigger Property="Visibility" Value="Collapsed">
<Setter Property="Margin" TargetName="MyLabel" Value="0,0,0,0"/>
</Trigger> 
</Style.Triggers>