첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

TestProject.zip
0.15MB

▶ MauiProgram.cs

using System.Diagnostics;

using Microsoft.Maui.LifecycleEvents;

namespace TestProject
{
    /// <summary>
    /// MAUI 프로그램
    /// </summary>
    public static class MauiProgram
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Static
        //////////////////////////////////////////////////////////////////////////////// Public

        #region MAUI 앱 생성하기 - CreateMauiApp()

        /// <summary>
        /// MAUI 앱 생성하기
        /// </summary>
        /// <returns>MAUI 앱</returns>
        public static MauiApp CreateMauiApp()
        {
            MauiAppBuilder builder = MauiApp.CreateBuilder();

            builder.UseMauiApp<App>()
                .ConfigureFonts
                (
                    fontCollection =>
                    {
                        fontCollection.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                    }
                )
                .ConfigureLifecycleEvents
                (
                    lifecycleBuilder =>
                    {
#if WINDOWS
                        lifecycleBuilder.AddWindows
                        (
                            windowsLifecycleBuilder => windowsLifecycleBuilder.OnWindowCreated
                            (
                                window =>
                                {
                                    window.SizeChanged += window_SizeChanged;
                                }
                            )
                        );

                        lifecycleBuilder.AddEvent(nameof(Microsoft.UI.Xaml.Window.SizeChanged), () => LogEvent("윈도우 크기 변경시"));
#endif

                        static void LogEvent(string eventName, string type = null)
                        {
                            Debug.WriteLine($"[{DateTime.Now.ToString("HH:mm:ss")}] 수명 주기 이벤트 : {eventName}{(type == null ? string.Empty : $" ({type})")}");
                        }
                    }
                );

            return builder.Build();
        }

        #endregion

        //////////////////////////////////////////////////////////////////////////////// Private

#if WINDOWS
        #region 윈도우 크기 변경시 처리하기 - window_SizeChanged(sender, e)

        /// <summary>
        /// 윈도우 크기 변경시 처리하기
        /// </summary>
        /// <param name="sender">이벤트 발생자</param>
        /// <param name="e">이벤트 인자</param>
        private static void window_SizeChanged(object sender, Microsoft.UI.Xaml.WindowSizeChangedEventArgs e)
        {
            ILifecycleEventService service = MauiWinUIApplication.Current.Services.GetRequiredService<ILifecycleEventService>();

            service.InvokeEvents(nameof(Microsoft.UI.Xaml.Window.SizeChanged));
        }

        #endregion
#endif
    }
}
728x90
반응형
그리드형(광고전용)

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

[C#/MAUI] Behavior<T> 클래스 : 실수 값 검증 동작 만들기 (기능 개선)  (0) 2022.03.08
[C#/MAUI] Behavior<T> 클래스 : 실수 값 검증 동작 만들기  (0) 2022.03.08
[C#/MAUI] BindableProperty 클래스 : CreateAttached 정적 메소드를 사용해 첨부 속성 만들기  (0) 2022.03.08
[C#/MAUI] HandlerMauiAppBuilderExtensions 클래스 : ConfigureMauiHandlers 확장 메소드를 사용해 렌더러 등록하기 (ANDROID) (IOS)  (0) 2022.03.08
[C#/MAUI] MauiAppBuilder 클래스 : ConfigureFonts 정적 메소드를 사용해 폰트 추가하기  (0) 2022.03.08
[C#/MAUI] MauiAppHostBuilderExtensions 클래스 : ConfigureLifecycleEvents 확장 메소드를 사용해 윈도우 크기 변경시 처리하기 (UWP)  (0) 2022.03.07
[C#/MAUI] MauiAppHostBuilderExtensions 클래스 : ConfigureLifecycleEvents 확장 메소드를 사용해 윈도우 크기 변경시 처리하기 (UWP)  (0) 2022.03.07
[C#/MAUI] MauiAppHostBuilderExtensions 클래스 : ConfigureLifecycleEvents 확장 메소드를 사용해 수명 주기 이벤트 수신하기 (UWP)  (0) 2022.03.07
[C#/MAUI] MauiAppHostBuilderExtensions 클래스 : ConfigureLifecycleEvents 확장 메소드를 사용해 수명 주기 이벤트 수신하기 (ANDROID)  (0) 2022.03.07
[C#/MAUI] NameScopeExtensions 클래스 : FindByName<T> 메소드를 사용해 동적 로드 XAML에서 요소 참조하기  (0) 2022.03.04
[C#/MAUI] Extensions 클래스 : LoadFromXaml 확장 메소드를 사용해 런타임시 XAML 로드하기  (0) 2022.03.04
Posted by icodebroker

댓글을 달아 주세요