WPF更改SplineThicknessKeyFrame值?

时间:2014-04-25 15:39:46

标签: wpf canvas

我是WPF新手,如果有人可以给我一些提示,请执行此操作:

我需要将一些图像从左侧或右侧移动,就像在一个封面流(旋转木马,我不能使用组件作为Dev Express,我必须自己做)。我需要的是,如果我最大化窗口,“旋转木马”也会扩展,并保持图像边缘之间的关系。

我尝试在Canvas中移动图像,但是当我最大化窗口时,Canvas不会这样做而且保持一点......我读到并理解我不能用Canvas做到这一点,所以我这样做网格上的图像和更改其边距属性,但是当我最大化时,边距仍然与图像很小且宽高比松散时相同。

所以我的问题是,当我最大化窗口时,如何更改边距?

使用保证金移动图像的代码是:

<Storyboard Name="FlowIzq">
   <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="Margin" Storyboard.TargetName="Image1" BeginTime="00:00:00">
<SplineThicknessKeyFrame    KeyTime="00:00:00"  Value="0,0,0,0"/>
<SplineThicknessKeyFrame    KeyTime="00:00:0.5" Value="-157, 0,157,0"/>
</ThicknessAnimationUsingKeyFrames>

</Storyboard>
</BeginStoryboard.Storyboard>

我想我需要更改所有SplineThicknessKeyFrame的值,但我是如何做到的?

我希望能够很好地解释一下,有人可以帮助我(对不起我的英语),如果有什么不明白我会再解释一下。

和平 罗布。

1 个答案:

答案 0 :(得分:0)

4年后,我发现自己需要类似的故事板,所以我想分享一下最终的结果。希望它可以在4年后帮助其他人。

<Grid.Triggers>
            <EventTrigger RoutedEvent="MouseEnter">
               <BeginStoryboard>
                  <Storyboard >    
                     <DoubleAnimation  Storyboard.TargetProperty="Opacity"
                                       From="1"
                                       To="0"
                                       Duration="0:0:1">
                     </DoubleAnimation>    
                     <DoubleAnimation  Storyboard.TargetProperty="Opacity"
                                       From="0"
                                       To="1"
                                       Duration="0:0:1"
                                       BeginTime="0:0:1">
                     </DoubleAnimation>

                     <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="Margin" Duration="00:00:1">
                        <SplineThicknessKeyFrame KeyTime="00:00:1" Value="0,0,500,0" />
                     </ThicknessAnimationUsingKeyFrames>

                     <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="Margin" Duration="00:00:1">
                        <DiscreteThicknessKeyFrame KeyTime="00:00:1.0" Value="0,0,-550,0" />
                     </ThicknessAnimationUsingKeyFrames>

                     <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="Margin" Duration="00:00:1" BeginTime="0:0:1">
                        <SplineThicknessKeyFrame KeyTime="00:00:1.0" Value="0" />
                     </ThicknessAnimationUsingKeyFrames>    
                  </Storyboard>
               </BeginStoryboard>
            </EventTrigger>    
         </Grid.Triggers>

只需将Grid.Triggers替换为您的Control.TriggersEventTrigger.RoutedEvent即可,这对您来说很有意义。