我是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的值,但我是如何做到的?
我希望能够很好地解释一下,有人可以帮助我(对不起我的英语),如果有什么不明白我会再解释一下。
和平 罗布。
答案 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.Triggers
和EventTrigger.RoutedEvent
即可,这对您来说很有意义。