본문 바로가기
programming/UWP

uwp 현재 윈도우 사이즈 가져오기 설정하기 how to get or set current windows size

by 개코 - 개발과 코딩 2021. 3. 31.

uwp 앱을 만들기 위해 필요한 것이 윈도우 사이즈이다. 윈도우 사이즈는 가로 세로 즉, 너비와 높이로 구분되며 이것을 이용해 만들고자 하는 서비스의 목적에 맞게 윈도우 크기를 정할 수 있다. uwp는 윈도우계열의 다기종에 맞춰진 범용이기 때문에 기존 C# 윈폼과는 차이가 있지만 방법은 같다.

uwp 현재 윈도우 사이즈 가져오기
How to get current windows size

uwp 윈도우 사이즈의 값을 가져오기 위해 Window.Current.Content을 사용하고 윈도우 사이즈의 값을 설정하기 위해서는 ApplicationView.PreferredLaunchViewSize을 사용한다.

  • Window.Current.Content : 윈도우 사이즈 가져오기
  • ApplicationView.PreferredLaunchViewSize : 윈도우 사이즈 설정하기

윈도우 사이즈 가져오기

Window.Current.Content은 윈도우 사이즈를 가져오는 가장 간단한 방법으로 코드에서 바로 적용하여 사용할 수 있다.

간단한 코드를 보자.

/** uwp 현재 윈도우 너비 가져오기 */
(Frame)Window.Current.Content).ActualWidth

/** uwp 현재 윈도우 높이 가져오기 */
(Frame)Window.Current.Content).ActualHeight

윈도우 사이즈 설정하기

윈도우의 사이즈를 알았다면 설정을 할 필요가 있다. ApplicationView.PreferredLaunchViewSize을 사용하면 쉽게 윈도우 크기를 설정할 수 있다.

너비와 높이는 정수형 숫자를 이용한다.

/** 윈도우 사이즈 설정하기 */
ApplicationView.PreferredLaunchViewSize = new Size(너비, 높이);

전체 코드를 보자

최초에 프로그램이 실행되면 너비 500px , 높이 319px 로 윈도우 사이즈를 강제 설정한다.

버튼을 클릭하면 설정된 윈도우 사이즈를 다이얼로그 알림창으로 표시한다.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Text;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Popups;
using Windows.UI.ViewManagement;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

// 빈 페이지 항목 템플릿에 대한 설명은 https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x412에 나와 있습니다.

namespace TestUwpApp
{
    /// <summary>
    /// 자체적으로 사용하거나 프레임 내에서 탐색할 수 있는 빈 페이지입니다.
    /// </summary>
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();

            SetCurrentWindowsSize();
        }

        private void SetCurrentWindowsSize()
        {
            /** 윈도우 크기 설정하기 */
            ApplicationView.PreferredLaunchViewSize = new Size(500, 319);
        }

        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            /** 윈도우 크기 가져오기 */
            StringBuilder vStringBuilder = new StringBuilder();
            vStringBuilder.Append("Width : " + ((Frame)Window.Current.Content).ActualWidth);
            vStringBuilder.Append("\n");
            vStringBuilder.Append("Height : " + ((Frame)Window.Current.Content).ActualHeight);

            /** 윈도우 크기 알림창 표시 */
            var vMessageDialog = new MessageDialog(vStringBuilder.ToString(), "현재 윈도우 크기");
            await vMessageDialog.ShowAsync();
        }
    }
}

uwp 윈도우 사이즈

반응형

댓글