ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • WPF 새 윈도우 위치 지정
    C#/WPF 2018. 1. 5. 11:16

    WPF에서 어떤 위도우에서 새로운 윈도우를 불러낼 때가 있습니다.


    이 때 새 윈도우가 생성되는 위치는 프로그램이 첫 실행된 위치에서 생성되게 됩니다.



    윈도우의 위치는 해당 윈도우의 Top 속성과 Left 속성으로 인해 결정되게 되는데(MSDN),


    이 속성이 프로그램의 첫 실행시에 결정되는 것입니다.



    그래서 원하는 곳에 윈도우를 띄우기 위해서는 Top과 Left 속성을 설정해주어야 합니다.


    간단한 예로 호출하는 윈도우의 중앙에서 창이 생성되도록 하는 코드입니다.



    1
    2
    3
    4
    5
    6
    7
    8
    9
    private void Information_Click(object sender, RoutedEventArgs e)
    {
        InformationWindow informationWindow = new InformationWindow();
     
        informationWindow.Top = this.Top + (this.ActualHeight - informationWindow.Height) / 2;
        informationWindow.Left = this.Left + (this.ActualWidth - informationWindow.Width) / 2;
     
        informationWindow.ShowDialog();
    }
    cs


    이 예제는 [프로그램 정보] 를 눌렀을 시 정보를 알려주는 윈도우가 Dialog 형태로 보여지도록 하는 함수입니다.


    수치는 아래 그림처럼 Top이 현재 윈도우를 기준(this.Top)

    아래(+)로 현재 윈도우의 반만큼 간 뒤, 새 윈도우의 반만큼 올라오면 됩니다.


    그림

    미흡한 그림이지만, 이해를 돕기 위해 그렸습니다.




    이런 식으로 위치를 계산하여 원하는 위치에 새 윈도우를 띄우거나, 현재 윈도우의 위치를 옮길 수 도 있습니다.

    'C# > WPF' 카테고리의 다른 글

    WPF ListView(ListBox) 드래그 하는 중 스크롤  (0) 2018.01.31
    WPF 한 ListView(ListBox)에서 Drag Drop  (2) 2018.01.30
    WPF 실행파일 위치 알아내는 법  (0) 2017.12.29
    WPF 폰트(글꼴) 포함 배포  (0) 2017.12.20
    WPF FontDialog  (0) 2017.07.18

    댓글

GiGong