当WindowStartupLocation =“CenterScreen”时,是否可以将窗口位置偏移一个值?

时间:2013-11-01 11:21:53

标签: c# wpf

以前的要求是窗口为CenterScreen,但客户最近要求窗口现在位于其当前位置的右侧。

窗口的当前定义是:

我希望以下方法能够奏效:

    public MyWindow()
    {
        InitializeComponent();

        // change the position after the component is initialized
        this.Left = this.Left + this.Width;
    }

但是当窗口显示在屏幕上时,窗口仍处于相同的位置。

我是否需要将启动位置更改为Manual并自行定位?如果是这样,我如何从中心偏移?

2 个答案:

答案 0 :(得分:4)

处理Loaded事件,并将this.Left = this.Left + this.Width;放在那里:

public MyWindow()
    {
        InitializeComponent();

        this.Loaded += new RoutedEventHandler(MyWindow_Loaded);
    }


 void MyWindow_Loaded(object sender, RoutedEventArgs e)
        {
            this.Left = this.Left + this.Width;
        }

答案 1 :(得分:0)

在设计师中 右键单击窗口 选择属性。 在属性侧面板中查找“StartPosition” 将其值设置为“CenterScreen”。

或者 您可以尝试窗口的InitializeComponent()中的以下代码

this.StartPosition=FormStartPosition.CenterScreen;

或者 如果是弹出窗口,请尝试使用以下代码。

this.StartPosition=FormStartPosition.CenterParent;

或者 如果它是应用程序启动的窗口,则使用以下设置。

this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen