[WPF] WindowStartupLocation 가운데 설정 방법

WPF에서 애플리케이션을 개발할 때, 창을 화면 가운데로 설정하는 방법에 대해 알아보도록 합시다. 일반적으로 WindowStartupLocation 속성을 System.Windows.WindowStartupLocation.CenterScreen; 으로 설정하는 것을 고려해볼 수 있는데요, 이러한 경우에는 부모 폼의 위치와 관계 없이 무조건 화면의 가운데에 오는 부분이 고려하셔야 합니다. 부모 폼의 위치가 유동적일 때, 가운데 설정 방법에 대해 안내해드리겠습니다.

WindowStartupLocation 가운데

Owner 설정

먼저, 화면 가운데로 위치할 창의 Owner를 설정해야 합니다. Owner를 설정하면 해당 창이 가운데로 정렬될 기준이 되기 때문입니다. 보통 Application.Current.MainWindow을 Owner로 설정하는 것이 일반적입니다.

g_beom_MsgOk.Owner = Application.Current.MainWindow;

위 코드에서 g_beom_MsgOk는 화면 가운데로 위치시키고자 하는 창의 이름입니다. Owner를 설정하는 이 부분은 창을 화면 가운데로 정렬하기 위한 첫 단계라 할 수 있습니다.

WindowStartupLocation 설정

이제 WindowStartupLocation 속성을 사용하여 창을 가운데로 위치해 보도록 하겠습니다. WindowStartupLocation 속성을 WindowStartupLocation.CenterOwner로 설정하면 창이 Owner를 기준으로 화면 가운데에 표시가 된답니다.

g_beom_MsgOk.WindowStartupLocation = WindowStartupLocation.CenterOwner;

위 코드에서 g_beom_MsgOk는 화면 가운데로 위치하고자 하는 창의 이름이며, WindowStartupLocation.CenterOwner로 설정되면 이 창이 Owner를 기준으로 화면 가운데에 자동으로 위치하게 됩니다.

WindowStartupLocation 가운데 설정

이제, 이 두 가지 단계를 따르면 WPF 애플리케이션에서 창을 화면 가운데로 설정할 수 있습니다. 화면 가운데에 위치한 창을 통해 메시지나 다른 작업을 수행할 수 있으며, 더욱 눈에 띄도록 할 수 있을 것입니다.

다음은 해당 코드를 활용한 예제 코드 자료입니다.

public static Beom_MsgOk GetBeomMsgOk(string _title, string _content)
{
    try
    {
        Beom_Method.g_beom_MsgOk = Beom_MsgOk.GetInstance();
        g_beom_MsgOk.M_Title = _title;
        g_beom_MsgOk.M_Contents = _content;
        g_beom_MsgOk.Topmost = true;
        //g_beom_MsgOk.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
        g_beom_MsgOk.Owner = System.Windows.Application.Current.MainWindow;
        g_beom_MsgOk.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
        g_beom_MsgOk.ShowDialog();
        return g_beom_MsgOk;
    }
    catch (Exception ex)
    {
        ex.SaveException();
        return null;
    }
}

댓글