[C#/WINUI3/.NET8] Microsoft.Xaml.Behaviors.WinUI.Managed 누겟 설치하기
■ Microsoft.Xaml.Behaviors.WinUI.Managed 누겟을 설치하는 방법을 보여준다. 1. Visual Studio를 실행한다. 2. [도구] / [NuGet 패키지 관리자] / [패키지 관리자 콘솔] 메뉴를 실행한다.
■ Microsoft.Xaml.Behaviors.WinUI.Managed 누겟을 설치하는 방법을 보여준다. 1. Visual Studio를 실행한다. 2. [도구] / [NuGet 패키지 관리자] / [패키지 관리자 콘솔] 메뉴를 실행한다.
■ StackedNotificationsBehavior 클래스의 Show 메소드를 사용해 알림 표시 후 일정 시간 경과시 알림을 지우는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다.
■ StackedNotificationsBehavior 클래스의 Show 메소드를 사용해 알림을 표시하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서 WindowsPackageType 태그를
■ StickyHeaderBehavior 엘리먼트를 사용해 HeaderedItemsControl 엘리먼트에서 헤더를 고정하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서 WindowsPackageType 태그를
■ StickyHeaderBehavior 엘리먼트를 사용해 HeaderedTreeView 엘리먼트에서 헤더를 고정하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서 WindowsPackageType 태그를
■ QuickReturnHeaderBehavior 엘리먼트를 사용해 헤더 신속 복귀를 처리하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서 WindowsPackageType 태그를
■ QuickReturnHeaderBehavior 엘리먼트를 사용해 헤더 신속 복귀를 처리하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서 WindowsPackageType 태그를
■ FadeHeaderBehavior 엘리먼트를 사용해 헤더 페이드를 처리하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서 WindowsPackageType 태그를 None으로
■ EventTriggerBehavior 엘리먼트의 EventName 속성을 사용해 특정 이벤트 발생시 처리하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서
■ FocusBehavior 엘리먼트를 사용해 ListView 엘리먼트에서 포커스를 설정하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서 WindowsPackageType 태그를
■ FocusTarget 엘리먼트의 Control 속성을 사용해 포커스 동작을 허용하는 컨트롤을 설정하는 방법을 보여준다. ▶ 예제 코드 (XAML)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?xml version="1.0" encoding="utf-8"?> <Page x:Class="TestProject.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mxi="using:Microsoft.Xaml.Interactivity" xmlns:ctwb="using:CommunityToolkit.WinUI.Behaviors" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" FontFamily="나눔고딕코딩" FontSize="16"> <mxi:Interaction.Behaviors> <ctwb:FocusBehavior> <ctwb:FocusTarget Control="{x:Bind button1}" /> <ctwb:FocusTarget Control="{x:Bind button2}" /> </ctwb:FocusBehavior> </mxi:Interaction.Behaviors> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Spacing="50"> <Button Name="button1" Content="Button 1" IsEnabled="False" /> <Button Name="button2" Content="Button 2" /> </StackPanel> </Page> |
■ FocusBehavior 엘리먼트를 사용해 지정된 엘리먼트 중에서 동작을 허용하는 첫번째 엘리먼트에 포커스를 설정하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※
■ ViewportBehavior 엘리먼트의 IsAlwaysOn/IsFullyInViewport/IsInViewport 속성을 사용해 부모 엘리먼트에서 자식 엘리먼트의 진입/이탈 여부를 구하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※
■ AutoSelectBehavior 엘리먼트를 사용해 TextBox 엘리먼트에서 문자열을 포커스 획득시 자동 선택하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트
■ KeyDownTriggerBehavior 엘리먼트의 Key 속성을 사용해 특정 키를 누를 경우 작업을 처리하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj
■ AnimationCompletedTriggerBehavior 엘리먼트를 사용해 애니메이션 종료시 처리하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서 WindowsPackageType 태그를 None으로
■ AnimationStartedTriggerBehavior 엘리먼트를 사용해 애니메이션 시작시 처리하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서 WindowsPackageType 태그를 None으로
■ CommunityToolkit.WinUI.Behaviors 누겟을 설치하는 방법을 보여준다. 1. Visual Studio를 실행한다. 2. [도구] / [NuGet 패키지 관리자] / [패키지 관리자 콘솔] 메뉴를 실행한다.
■ Behavior<T> 클래스를 사용해 ListBox 객체에서 항목 선택시 해당 항목으로 자동 스크롤하는 방법을 보여준다. ▶ AutoScrollListBoxBehavior.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
using System; using System.Windows.Controls; using System.Windows.Threading; using Microsoft.Xaml.Behaviors; namespace TestProject { /// <summary> /// 자동 스크롤 리스트 박스 동작 /// </summary> public class AutoScrollListBoxBehavior : Behavior<ListBox> { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Protected #region 부착시 처리하기 - OnAttached() /// <summary> /// 부착시 처리하기 /// </summary> protected override void OnAttached() { base.OnAttached(); AssociatedObject.SelectionChanged += AssociatedObject_SelectionChanged; } #endregion #region 탈착시 처리하기 - OnDetaching() /// <summary> /// 탈착시 처리하기 /// </summary> protected override void OnDetaching() { AssociatedObject.SelectionChanged -= AssociatedObject_SelectionChanged; base.OnDetaching(); } #endregion ////////////////////////////////////////////////////////////////////////////////////////// Private #region 관련 객체 선택 변경시 처리하기 - AssociatedObject_SelectionChanged(sender, e) /// <summary> /// 관련 객체 선택 변경시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private static void AssociatedObject_SelectionChanged(object sender, SelectionChangedEventArgs e) { ListBox listBox = sender as ListBox; if(listBox?.SelectedItem == null) { return; } Action action = () => { listBox.UpdateLayout(); if(listBox.SelectedItem != null) { listBox.ScrollIntoView(listBox.SelectedItem); } }; listBox.Dispatcher.BeginInvoke(action, DispatcherPriority.ContextIdle); } #endregion } } |
▶ MainWindow.xaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
<Window x:Class="TestProject.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:i="http://schemas.microsoft.com/xaml/behaviors" xmlns:local="clr-namespace:TestProject" Width="800" Height="600" Title="TestProject" FontFamily="나눔고딕코딩" FontSize="16"> <StackPanel VerticalAlignment="Center"> <ListBox Name="listBox" Width="200" Height="200"> <ListBoxItem>항목 01</ListBoxItem> <ListBoxItem>항목 02</ListBoxItem> <ListBoxItem>항목 03</ListBoxItem> <ListBoxItem>항목 04</ListBoxItem> <ListBoxItem>항목 05</ListBoxItem> <ListBoxItem>항목 06</ListBoxItem> <ListBoxItem>항목 07</ListBoxItem> <ListBoxItem>항목 08</ListBoxItem> <ListBoxItem>항목 09</ListBoxItem> <ListBoxItem>항목 10</ListBoxItem> <ListBoxItem>항목 11</ListBoxItem> <ListBoxItem>항목 12</ListBoxItem> <ListBoxItem>항목 13</ListBoxItem> <ListBoxItem>항목 14</ListBoxItem> <ListBoxItem>항목 15</ListBoxItem> <ListBoxItem>항목 16</ListBoxItem> <ListBoxItem>항목 17</ListBoxItem> <ListBoxItem>항목 18</ListBoxItem> <ListBoxItem>항목 19</ListBoxItem> <ListBoxItem>항목 20</ListBoxItem> <i:Interaction.Behaviors> <local:AutoScrollListBoxBehavior /> </i:Interaction.Behaviors> </ListBox> <StackPanel Margin="0 10 0 0" HorizontalAlignment="Center" Orientation="Horizontal"> <Button Name="firstItemButton" Width="100" Height="30" Content="첫번째 항목" /> <Button Name="lastItemButton" Margin="10 0 0 0" Width="100" Height="30" Content="마지막 항목" /> </StackPanel> </StackPanel> </Window> |
▶ MainWindow.xaml.cs
■ Behavior<T> 클래스를 사용해 마우스 휠을 비활성화하는 방법을 보여준다. ▶ IgnoreMouseWheelBehavior.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
using System.Windows.Input; using System.Windows; using Microsoft.Xaml.Behaviors; namespace TestProject { /// <summary> /// 마우스 휠 무사 동작 /// </summary> public sealed class IgnoreMouseWheelBehavior : Behavior<UIElement> { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Protected #region 부착시 처리하기 - OnAttached() /// <summary> /// 부착시 처리하기 /// </summary> protected override void OnAttached() { base.OnAttached(); AssociatedObject.PreviewMouseWheel += AssociatedObject_PreviewMouseWheel; } #endregion #region 탈착시 처리하기 - OnDetaching() /// <summary> /// 탈착시 처리하기 /// </summary> protected override void OnDetaching() { AssociatedObject.PreviewMouseWheel -= AssociatedObject_PreviewMouseWheel; base.OnDetaching(); } #endregion ////////////////////////////////////////////////////////////////////////////////////////// Private #region 연관 객체 프리뷰 마우스 휠 처리하기 - AssociatedObject_PreviewMouseWheel(sender, e) /// <summary> /// 연관 객체 프리뷰 마우스 휠 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void AssociatedObject_PreviewMouseWheel(object sender, MouseWheelEventArgs e) { e.Handled = true; MouseWheelEventArgs mouseWheelEventArgs = new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta); mouseWheelEventArgs.RoutedEvent = UIElement.MouseWheelEvent; AssociatedObject.RaiseEvent(mouseWheelEventArgs); } #endregion } } |
▶ MainWindow.xaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
<Window x:Class="TestProject.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:i="http://schemas.microsoft.com/xaml/behaviors" xmlns:local="clr-namespace:TestProject" Width="800" Height="600" Title="TestProject" FontFamily="나눔고딕코딩" FontSize="16"> <ListBox Width="200" Height="200"> <ListBoxItem>항목 01</ListBoxItem> <ListBoxItem>항목 02</ListBoxItem> <ListBoxItem>항목 03</ListBoxItem> <ListBoxItem>항목 04</ListBoxItem> <ListBoxItem>항목 05</ListBoxItem> <ListBoxItem>항목 06</ListBoxItem> <ListBoxItem>항목 07</ListBoxItem> <ListBoxItem>항목 08</ListBoxItem> <ListBoxItem>항목 09</ListBoxItem> <ListBoxItem>항목 10</ListBoxItem> <ListBoxItem>항목 11</ListBoxItem> <ListBoxItem>항목 12</ListBoxItem> <ListBoxItem>항목 13</ListBoxItem> <ListBoxItem>항목 14</ListBoxItem> <ListBoxItem>항목 15</ListBoxItem> <ListBoxItem>항목 16</ListBoxItem> <ListBoxItem>항목 17</ListBoxItem> <ListBoxItem>항목 18</ListBoxItem> <ListBoxItem>항목 19</ListBoxItem> <ListBoxItem>항목 20</ListBoxItem> <i:Interaction.Behaviors> <local:IgnoreMouseWheelBehavior /> </i:Interaction.Behaviors> </ListBox> </Window> |
TestProject.zip
■ Behavior<T> 클래스를 사용해 팝업을 드래그해서 이동하는 방법을 보여준다. ▶ PopupDragBehavior.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
using System.Windows.Controls; using System.Windows.Controls.Primitives; using Microsoft.Xaml.Behaviors; namespace TestProject { /// <summary> /// 팝업 드래그 동작 /// </summary> public class PopupDragBehavior : Behavior<Popup> { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Protected #region 탈착시 처리하기 - OnAttached() /// <summary> /// 탈착시 처리하기 /// </summary> protected override void OnAttached() { if(AssociatedObject.Child != null) { if(AssociatedObject.Child is Panel) { Thumb thumb = new Thumb() { Width = 0, Height = 0 }; Panel panel = AssociatedObject.Child as Panel; if(panel != null) { panel.Children.Add(thumb); } AssociatedObject.MouseDown += (s, e) => { thumb.RaiseEvent(e); }; thumb.DragDelta += (s, e) => { AssociatedObject.HorizontalOffset += e.HorizontalChange; AssociatedObject.VerticalOffset += e.VerticalChange; }; } } } #endregion } } |
▶ MainWindow.xaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<Window x:Class="TestProject.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:b="http://schemas.microsoft.com/xaml/behaviors" xmlns:local="clr-namespace:TestProject" Width="800" Height="600" Title="TestProject" FontFamily="나눔고딕코딩" FontSize="16"> <Grid> <Popup Placement="Center" IsOpen="True"> <StackPanel Background="Black"> <Label HorizontalAlignment="Center" Foreground="White" Content="팝업 드래그 테스트" /> <Grid Width="300" Height="150" Background="Blue"> </Grid> </StackPanel> <b:Interaction.Behaviors> <local:PopupDragBehavior /> </b:Interaction.Behaviors> </Popup> </Grid> </Window> |
TestProject.zip
■ Microsoft.Xaml.Behaviors.Wpf 누겟을 설치하는 방법을 보여준다. 1. Visual Studio를 실행한다. 2. [도구] / [NuGet 패키지 관리자] / [패키지 관리자 콘솔] 메뉴를 실행한다.
■ AnimationBehavior 엘리먼트를 사용해 버튼 클릭시 페이드 인/아웃 애니메이션을 만드는 방법을 보여준다. ▶ MainPage.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?xml version="1.0" encoding="utf-8" ?> <ContentPage x:Class="TestProject.MainPage" xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"> <Button HorizontalOptions="Center" VerticalOptions="Center" Padding="10" Text="애니메이션 테스트"> <Button.Behaviors> <toolkit:AnimationBehavior EventName="Clicked"> <toolkit:AnimationBehavior.AnimationType> <toolkit:FadeAnimation Opacity="0.2" /> </toolkit:AnimationBehavior.AnimationType> </toolkit:AnimationBehavior> </Button.Behaviors> </Button> </ContentPage> |
▶ MauiProgram.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
using CommunityToolkit.Maui; 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>() .UseMauiCommunityToolkit() .ConfigureFonts ( fontCollection => { fontCollection.AddFont("OpenSans-Regular.ttf" , "OpenSansRegular" ); fontCollection.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold"); } ); return builder.Build(); } #endregion } |
TestProject.zip
■ AnimationBehavior 엘리먼트를 사용해 버튼 클릭시 버튼 크기 변경 애니메이션을 만드는 방법을 보여준다. ▶ ScaleAnimation.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
using CommunityToolkit.Maui.Animations; namespace TestProject { /// <summary> /// 스케일 애니메이션 /// </summary> public class ScaleAnimation : BaseAnimation { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Public #region 애니메이션 처리하기 - Animate(view) /// <summary> /// 애니메이션 처리하기 /// </summary> /// <param name="view">뷰</param> /// <returns>태스크</returns> public override async Task Animate(VisualElement view) { await view.ScaleTo(1.2, Length, Easing); await view.ScaleTo(1 , Length, Easing); } #endregion } } |
▶ MainPage.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?xml version="1.0" encoding="utf-8" ?> <ContentPage x:Class="TestProject.MainPage" xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit" xmlns:local="clr-namespace:TestProject"> <Button HorizontalOptions="Center" VerticalOptions="Center" Padding="10" Text="테스트"> <Button.Behaviors> <toolkit:AnimationBehavior EventName="Clicked"> <toolkit:AnimationBehavior.AnimationType> <local:ScaleAnimation Easing="{x:Static Easing.Linear}" Length="100"/> </toolkit:AnimationBehavior.AnimationType> </toolkit:AnimationBehavior> </Button.Behaviors> </Button> </ContentPage> |
▶ MauiProgram.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
using CommunityToolkit.Maui; 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>() .UseMauiCommunityToolkit() .ConfigureFonts ( fontCollection => { fontCollection.AddFont("OpenSans-Regular.ttf" , "OpenSansRegular" ); fontCollection.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold"); } ); return builder.Build(); } #endregion } |
■ StatusBarBehavior 클래스의 StatusBarColor/StatusBarStyle 속성을 사용해 상태바 색상 및 스타일을 설정하는 방법을 보여준다. ▶ MainPage.xaml
1 2 3 4 5 6 7 8 9 10 11 |
<?xml version="1.0" encoding="utf-8" ?> <ContentPage x:Class="TestProject.MainPage" xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"> <Page.Behaviors> <toolkit:StatusBarBehavior x:Name="statusBarBehavior" /> </Page.Behaviors> </ContentPage> |
▶ MainPage.xaml.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
using CommunityToolkit.Maui.Core; namespace TestProject; /// <summary> /// 메인 페이지 /// </summary> public partial class MainPage : ContentPage { //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor ////////////////////////////////////////////////////////////////////////////////////////// Public #region 생성자 - MainPage() /// <summary> /// 생성자 /// </summary> public MainPage() { InitializeComponent(); Loaded += ContentPage_Loaded; } #endregion //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Private #region 컨텐트 페이지 로드시 처리하기 - ContentPage_Loaded(sender, e) /// <summary> /// 컨텐트 페이지 로드시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void ContentPage_Loaded(object sender, EventArgs e) { // 생성자나 XAML에서 설정하면 예외가 발생한다. this.statusBarBehavior.StatusBarColor = Colors.Orange; this.statusBarBehavior.StatusBarStyle = StatusBarStyle.LightContent; } #endregion } |
▶ MauiProgram.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
using CommunityToolkit.Maui; 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>() .UseMauiCommunityToolkit() .ConfigureFonts ( fontCollection => { fontCollection.AddFont("OpenSans-Regular.ttf" , "OpenSansRegular" ); fontCollection.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold"); } ); return builder.Build(); } #endregion } |