2013-11-01 1 views
5

Die Anforderung war, dass das Fenster CenterScreen ist, aber der Client hat kürzlich gefragt, dass das Fenster jetzt etwas rechts von seiner aktuellen Position ist.Kann die Fensterposition um einen Wert versetzt werden, wenn WindowStartupLocation = "CenterScreen"?

Die aktuelle Definition des Fensters ist:

Ich hatte gehofft, dass das funktionieren würde, wie folgt vorgehen:

in der gleichen Position
public MyWindow() 
    { 
     InitializeComponent(); 

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

aber das Fenster ist nach wie vor, wenn es erscheint Bildschirm.

Muss ich den Startort auf Manual ändern und selbst positionieren? Wenn ja, wie bekomme ich es vom Zentrum versetzt?

Antwort

4

Griff Loaded Ereignis und setzen this.Left = this.Left + this.Width; dort:

public MyWindow() 
    { 
     InitializeComponent(); 

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


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

Perfekt! Ich muss 6 Minuten warten, um die Antwort zu akzeptieren. – DaveDev

+0

toll das hat funktioniert! – hungrycoder

0

im Designer klicken direkt am Fenster wählen Sie Eigenschaften. Suchen Sie im Seitenbereich der Eigenschaften nach "StartPosition" Setzen Sie den Wert auf "CenterScreen".

Oder können Sie versuchen, den follwoing Code in InitializeComponent() des Fensters

this.StartPosition=FormStartPosition.CenterScreen; 

Oder wenn es ein Popup-Fenster ist, dann versuchen Sie den Code unten verwenden.

this.StartPosition=FormStartPosition.CenterParent; 

Oder wenn es sich um das Fenster, aus dem die Anwendung mit dann die follwoing Einstellung verwenden beginnt.

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