2013-11-01 7 views
5

要件は、ウィンドウがCenterScreenであることが前提でしたが、クライアントは最近、ウィンドウが現在の位置のわずかに右側にあることを最近尋ねました。WindowStartupLocation = "CenterScreen"のとき、ウィンドウの位置を値でオフセットすることはできますか?

ウィンドウの現在の定義は次のとおりです。

public MyWindow() 
    { 
     InitializeComponent(); 

     // change the position after the component is initialized 
     this.Left = this.Left + this.Width; 
    } 
をしかし、それは上の表示されたときに、ウィンドウは同じ位置にまだある:

私は、次の操作を実行するとうまくいくことを期待していました画面。

スタートアップの場所をManualに変更して自分で配置する必要がありますか?もしそうなら、私はそれをセンターからどのように相殺するのですか?

答えて

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; 
     } 
+0

パーフェクト!答えを受け入れるには6分待たなければならない。 – DaveDev

+0

これはうまくいった! – hungrycoder

0

は、[プロパティ]を選択し 。プロパティのサイドパネルの は "StartPosition"を探します "CenterScreen"に値を設定します。ウィンドウ

this.StartPosition=FormStartPosition.CenterScreen; 

それとも の

それとも あなたは(のInitializeComponentでfollwoingコードを試すことができます)、それはポップアップウィンドウである場合は、以下のコードを使用してみてください。

this.StartPosition=FormStartPosition.CenterParent; 

それとも は、それは、アプリケーションが、その後follwoing設定を使用して起動したウィンドウである場合。

this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen 
関連する問題