C# 平滑设置wpf窗口宽度和高度以及left和top属性的动画

C# 平滑设置wpf窗口宽度和高度以及left和top属性的动画,c#,wpf,dependency-properties,wpf-animation,C#,Wpf,Dependency Properties,Wpf Animation,我无法使用“上”和“左”属性同时设置窗口的高度和宽度的动画。 (如果您想运行此功能,请在问题的末尾链接下载示例。) 始终在运行此动画时,我的窗口首先平滑移动到新位置(平滑地从顶部和左侧更改),并在窗口移动期间平滑地设置宽度的动画但窗口高度不响应然后窗口高度从一个值(旧高度)跳到新高度 我的WPF应用程序很简单-仅用于测试(4个属性、1个按钮和1个函数): 首先,我将此属性添加到我的窗口(文件:MainWindow.xaml.cs): 在同一文件中的MyWindow初始化MainWindow.xa

我无法使用“上”和“左”属性同时设置窗口的高度和宽度的动画。
(如果您想运行此功能,请在问题的末尾链接下载示例。)

始终在运行此动画时,我的窗口首先平滑移动到新位置(平滑地从顶部和左侧更改),并在窗口移动期间平滑地设置宽度的动画但窗口高度不响应然后窗口高度从一个值(旧高度)跳到新高度

我的WPF应用程序很简单-仅用于测试(4个属性、1个按钮和1个函数):

首先,我将此属性添加到我的窗口(文件:
MainWindow.xaml.cs
):

在同一文件中的
MyWindow
初始化
MainWindow.xaml.cs
中,属性设置为该值(以将动画垂直固定到底部点,水平居中):

我的应用程序有1个按钮,为此我为上一个过程的随机调用设置了click event:

private void Button_Click(object sender, RoutedEventArgs e)
{
    this.AnimateResize(new Random().NextDouble() * 400.0 - 200.0, new Random().NextDouble() * 500.0 - 250.0, 1000.0);
}
下面是我的xaml
main窗口的完整示例。xaml

<Window x:Class="Test_HeightAndTopAnimation.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="300" WindowStartupLocation="CenterScreen">
  <Grid>
    <Button Content="Button" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
  </Grid>
</Window>

我读了好几篇文章(-我没有网格,或者)但是看起来没有任何东西与这个问题相关

链接到带有示例的zip文件


最后一点:我使用Windows7 64位和.NET 4.5是的,这是一个奇怪的版本。如果您先将
高度
动画添加到
情节提要.儿童
集合中,则
高度
动画将平滑进行,而
宽度
动画将结巴。问题似乎出在窗口类中。不能同时设置其宽度和高度属性的动画。这是一本书。
public MainWindow()
{
    InitializeComponent();
    LocationLockHorizontal = AlignmentX.Center; // fix center point when animate resizing
    LocationLockVertical = AlignmentY.Bottom; // lock bottom corner of application
}
private void Button_Click(object sender, RoutedEventArgs e)
{
    this.AnimateResize(new Random().NextDouble() * 400.0 - 200.0, new Random().NextDouble() * 500.0 - 250.0, 1000.0);
}
<Window x:Class="Test_HeightAndTopAnimation.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="300" WindowStartupLocation="CenterScreen">
  <Grid>
    <Button Content="Button" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
  </Grid>
</Window>