在wpf中跨屏幕移动页面

时间:2017-08-28 07:39:34

标签: wpf storyboard

我是WPF的新手,刚刚开始习惯它, 我想在加载时在屏幕上移动页面。我目前使用的代码是:

<!DOCTYPE html>
<html>

<head>
  <script data-main="script" src="//requirejs.org/docs/release/2.1.20/minified/require.js"></script>
</head>

<body>
  <div id="placeHolder">Placeholder Here</div>
</body>

</html>

虽然这对我来说很好,但我想要的是不在

的值字段中使用硬值(1920)
<Storyboard>
    <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="Margin" BeginTime="00:00:00">
        <SplineThicknessKeyFrame KeyTime="00:00:00" Value="1920,0,0,0" />
        <SplineThicknessKeyFrame KeyTime="00:00:02" Value="0,0,0,0" />
    </ThicknessAnimationUsingKeyFrames>
    <DoubleAnimation
            Storyboard.TargetName="SummaryPageName"
            Storyboard.TargetProperty="Opacity"
            From="0" To="1" Duration="0:0:2"
            AutoReverse="False">
    </DoubleAnimation>
</Storyboard>

如果没有指定此值,是否仍然可以这样做,以便它也可以与其他分辨率一起使用。

谢谢

1 个答案:

答案 0 :(得分:0)

使用后面的代码修改KeyFrame值。 您应该将资源名称分配给要由后面的代码找到的故事板资源。

[XAML]
<Storyboard x:Key="myStoryboard">

通过引用x:Key获取Storyboard对象实例。

[C#]
private void MainWindow_SizeChanged(object sender, SizeChangedEventArgs e)
{
    Storyboard s = this.Resources["myStoryboard"] as Storyboard;
    SplineThicknessKeyFrame k = (s.Children[0] as ThicknessAnimationUsingKeyFrames).KeyFrames[0] as SplineThicknessKeyFrame;
    k.Value = new Thickness(e.NewSize.Width,0,0,0);
}

您也可以使用数据绑定来更改关键帧值。如果需要更改大量关键帧资源,则应使用数据绑定。否则,手动更改值很容易准备。