2012-08-30 3 views
2

MainWindow에는 다른 WPF 창을 열 수있는 버튼이 있습니다. 이 윈도우가 MainWindow의 오른쪽에 항상 열리길 바랍니다.두 번째 창 위치 지정 WPF

어떻게하면됩니까? MainWindow의 너비가 변경 되어도 MainWindow에 어떤 버튼이 있는지에 따라 MainWindow의 크기를 변경할 수있는 다양한 버튼이 있어도이 작업이 필요합니다.

답변

0

다른 창에 대한 참조가있는 경우 새 창을 원하는 위치를 계산할 수 있습니다.

ActualWidth 또는 Width 속성에 액세스하여 Left 및 Top 속성과 너비에 액세스하여 다른 창 위치를 가져옵니다.

이제 Left + Width + Some spacing을 추가하여 새 창 위치를 계산할 수 있습니다.

체크 아웃 여기 Left 속성에 대한 설명서 : http://msdn.microsoft.com/en-us/library/system.windows.window.left.aspx

다른 사람이 이와 비슷하게 행동한다.

0

당신은 속성 또는 코드에서 두 번째 창 수동 시작 위치를 설정해야합니다

로드 이벤트에
WindowStartupLocation = WindowStartupLocation.Manual; 

가,하여 SizeChanged, 첫 번째 창의 LocationChanged, 당신은 다음과 같이 두 번째 윈도우의 위치를 ​​조정해야합니다

public void AdjustPosition() 
    { 
     window2.Left = Application.Current.MainWindow.Left + Application.Current.MainWindow.ActualWidth; 
     window2.Top = Application.Current.MainWindow.Top; 
    } 

    private void MainWindow_Loaded(object sender, RoutedEventArgs e) 
    { 
      AdjustPosition(); 
    } 

    private void MainWindow_SizeChanged(object sender, SizeChangedEventArgs e) 
    { 
      AdjustPosition(); 
    } 

    void MainWindow_LocationChanged(object sender, EventArgs e) 
    { 
      AdjustPosition(); 
    } 
+0

감사합니다. –