这是 [此处][1] 已回答问题的后续问题。
WPF 窗口的启动位置在 XAML 中定义。现在我想知道如何在代码中更改这些属性?例如,我可以这样说:
Window1.Top = 40 在窗口加载事件处理程序中?或者我需要为它设置哪个窗口事件来动态改变起始位置?
目标是在渲染之前动态设置窗口开始位置。
这是 [此处][1] 已回答问题的后续问题。
WPF 窗口的启动位置在 XAML 中定义。现在我想知道如何在代码中更改这些属性?例如,我可以这样说:
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;
}
}
您可以设置任何您希望的参数,但如果您要设置 Top/Left,请确保设置 WindowStatupLocation(或在 XAML 中将其设置为手动)。
就个人而言,在调用 InitializeComponent() 之后,我会将“Window1.Top = 40”类型的行放入构造函数中。这肯定会在窗口实际呈现之前被调用。
编辑:哎呀。我应该更仔细地阅读。
您是否尝试从窗口本身以外的某个类设置窗口的位置?如果您能够从 Window1 的构造函数中设置 Window1 的位置,我的建议会起作用。
否则,我会说你能做的最好的事情就是听窗口的 Loaded 事件并从那里设置位置。