2012-09-10 26 views
2

我有一个可以依赖于视图模型属性(如改变一个按钮的结果值窗口的左侧或右侧会出现一个控制单击别处UI)。我使用DataTriggers来实现这一定位:如何淡入时的Horizo​​ntalAlignment改变

<DataTrigger Binding="{Binding ShowOnLeft}" Value="True"> 
    <Setter Property="HorizontalAlignment" Value="Left"/> 
</DataTrigger> 
<DataTrigger Binding="{Binding ShowOnLeft}" Value="False"> 
    <Setter Property="HorizontalAlignment" Value="Right"/> 
</DataTrigger> 

我现在想在当它的位置改变控制褪色,所以我加了这些触发器: -

<Trigger Property="HorizontalAlignment" Value="Left"> 
    <Trigger.EnterActions> 
     <BeginStoryboard> 
      <Storyboard> 
       <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0.0" To="0.8" Duration="0:0:0.2"/> 
      </Storyboard> 
     </BeginStoryboard> 
    </Trigger.EnterActions> 
</Trigger> 

<Trigger Property="HorizontalAlignment" Value="Right"> 
    <Trigger.EnterActions> 
     <BeginStoryboard> 
      <Storyboard> 
       <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0.0" To="0.8" Duration="0:0:0.2"/> 
      </Storyboard> 
     </BeginStoryboard> 
    </Trigger.EnterActions> 
</Trigger> 

但是它产生一些奇怪的结果。淡入淡出效果在第一次Horizo​​ntalAlignment变为“左”时起作用,但在随后的尝试中不起作用。但是,每次Horizo​​ntalAlignment更改为“正确”时,淡入淡出都会很愉快。部分似乎是触发顺序 - 如果我交换两个触发器,则会发生相反的情况(淡入淡出仅在第一次将Horizo​​ntalAlignment设置为“右”时起作用,但每次都对“左”起作用)。

我在做什么错?

回答

1

也许是疯狂的猜测,但前段时间我有过类似的(不需要的)行为。最后,我已将DoubleAnimation的属性FillBehavior设置为Stop(默认值为HoldEnd)。

Read this了解关于此属性/枚举的更多信息。

+0

这个伎俩!非常感谢。 –

相关问题