动态更改WPF窗口的启动位置

时间:2009-10-09 19:46:21

标签: wpf window wpf-positioning

这是一个回答问题的后续问题[这里] [1]。

在XAML中定义了WPF窗口的启动位置。现在我想知道如何在代码中更改这些属性?例如,我可以这样说:

窗口加载事件处理程序中的

Window1.Top = 40?或者我需要为哪个窗口事件设置动态改变起始位置?

目标是在渲染之前动态设置Windows开始位置。

2 个答案:

答案 0 :(得分:7)

在代码中这很容易做到:

public partial class Window1 {

    public Window1()
    {
         InitializeComponent();
         this.Height = 500;
         this.Width = 500;
         this.WindowStartupLocation = WindowStartupLocation.Manual;
         this.Left = 0;
         this.Top = 0;
    }
}

您可以设置任何您想要的参数,但如果您要设置Top / Left,请确保设置WindowStatupLocation(或将其设置为XAML中的manual)。

答案 1 :(得分:0)

就个人而言,在调用InitializeComponent()之后,我会将“Window1.Top = 40”类型的行抛出到构造函数中。在实际呈现窗口之前,肯定会调用它。

编辑:哎呀。我应该仔细阅读。

您是否尝试从窗口本身以外的某个类设置窗口的位置?如果你能够在Window1的构造函数中设置Window1的位置,那么我的建议会有用。

否则,我会说你能做的最好的事情就是收听窗口的Loaded事件并从那里设置位置。