动态更改WPF窗口的启动位置
问题描述:
这是一个后续回答问题[此处] [1]。动态更改WPF窗口的启动位置
在XAML中定义了WPF窗口的启动位置。现在我想知道如何在代码中更改这些属性?例如,我可以这样说:
Window1.Top = 40在窗口加载事件处理程序?或者我需要设置哪些窗口事件来动态改变起始位置?
目标是在呈现之前动态设置窗口的开始位置。
答
这是相当容易的代码来完成:
public partial class Window1 {
public Window1()
{
InitializeComponent();
this.Height = 500;
this.Width = 500;
this.WindowStartupLocation = WindowStartupLocation.Manual;
this.Left = 0;
this.Top = 0;
}
}
你可以设置任何你想要的参数,但如果你要设置顶部/左侧,确保设置WindowStatupLocation(或有它在XAML中设置为手动)。
答
就个人而言,在调用InitializeComponent()之后,我会将“Window1.Top = 40”类型的行放入构造函数中。这肯定会在窗口实际呈现之前调用。
编辑:糟糕。我应该仔细阅读。
你是否试图从窗口本身以外的某个类中设置窗口的位置?如果您能够在Window1的构造函数中设置Window1的位置,我的建议将会起作用。
否则,我会说你可以做的最好的事情就是听窗口的Loaded事件,并从那里设置位置。
你是否试图从窗口内部,或者当你从调用代码创建一个新窗口来设置它? – 2009-10-09 20:21:23