在WPF中的代码中创建Storyboard

以下代码工作正常。

         

但是在这个FromTo值中是静态的 。 我需要根据系统分辨率动态传递值。 所以我需要在后面的代码中创建它。 有可能吗?

如何将其转换为代码隐藏?

在代码中工作时,您不需要真正的Storyboard,只需要基本function的动画,就像您在问题中显示的那样。 我做了一个小样本来展示它是多么容易。

这是主窗口背后的完整代码:

 namespace WpfCSharpSandbox { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); WidenObject(150, TimeSpan.FromSeconds(1)); } private void WidenObject(int newWidth, TimeSpan duration) { DoubleAnimation animation = new DoubleAnimation(newWidth, duration); rctMovingObject.BeginAnimation(Rectangle.WidthProperty, animation); } } } 

这就是XAML的样子:

      

把它放在一个WPF应用程序中,看看它是如何工作的,试验它并尝试其他动画/属性。

添加djerry的注释示例代码如下所示:

 var anim = new DoubleAnimation { From = 1920, To = 1, }; wnd.BeginAnimation(Window.LeftProperty, anim); 

并且您必须在窗口加载的事件处理程序中拥有此代码。 希望这可以帮助。