[C#/WINUI3/COMMUNITY TOOLKIT/.NET8] CommunityToolkit.WinUI.DeveloperTools 누겟 설치하기
■ CommunityToolkit.WinUI.DeveloperTools 누겟을 설치하는 방법을 보여준다. 1. Visual Studio를 실행한다. 2. [도구] / [NuGet 패키지 관리자] / [패키지 관리자 콘솔] 메뉴를 실행한다.
■ CommunityToolkit.WinUI.DeveloperTools 누겟을 설치하는 방법을 보여준다. 1. Visual Studio를 실행한다. 2. [도구] / [NuGet 패키지 관리자] / [패키지 관리자 콘솔] 메뉴를 실행한다.
■ CommunityToolkit.WinUI.Collections 누겟을 설치하는 방법을 보여준다. 1. Visual Studio를 실행한다. 2. [도구] / [NuGet 패키지 관리자] / [패키지 관리자 콘솔] 메뉴를 실행한다.
■ DesignTimeHelpers 클래스의 IsRunningInLegacyDesignerMode/IsRunningInEnhancedDesignerMode 정적 속성을 사용해 디자인 타임 모드 여부를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 |
using CommunityToolkit.WinUI.Helpers; if(DesignTimeHelpers.IsRunningInLegacyDesignerMode || DesignTimeHelpers.IsRunningInEnhancedDesignerMode) { // 디자인 타임 모드 } |
■ IncrementalLoadingCollection<TSource, TItem> 클래스를 사용해 증분 로딩 컬렉션을 만드는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서 WindowsPackageType
■ AdvancedCollectionView 클래스의 DeferRefresh 메소드를 사용해 대량 데이터 추가/수정/삭제시 갱신을 지연시키는 방법을 보여준다. ※ CommunityToolkit.WinUI.Collections 누겟을 설치한다. ▶ 예제 코드 (C#)
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 |
using System.Collections.ObjectModel; using CommunityToolkit.WinUI.Collections; ObservableCollection<Person> personCollection = new ObservableCollection<Person> { new Person { Name = "Staff" }, new Person { Name = "42" }, new Person { Name = "Swan" }, new Person { Name = "Orchid" }, new Person { Name = "15" }, new Person { Name = "Flame" }, new Person { Name = "16" }, new Person { Name = "Arrow" }, new Person { Name = "Tempest" }, new Person { Name = "23" }, new Person { Name = "Pearl" }, new Person { Name = "Hydra" }, new Person { Name = "Lamp Post" }, new Person { Name = "4" }, new Person { Name = "Looking Glass" }, new Person { Name = "8" } }; AdvancedCollectionView advancedCollectionView = new AdvancedCollectionView(personCollection); advancedCollectionView.Filter = x => !int.TryParse(((Person)x).Name, out _); advancedCollectionView.SortDescriptions.Add(new SortDescription("Name", SortDirection.Ascending)); // ... using(advancedCollectionView.DeferRefresh()) { for(var i = 0; i < 500; i++) { advancedCollectionView.Add(new Person { Name = "defer" }); } } |
■ AdvancedCollectionView 클래스의 Filter/SortDescriptions 속성을 사용해 컬렉션 필터/정렬하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서 WindowsPackageType 태그를
■ ScreenUnitHelper 클래스의 Convert 정적 메소드를 사용해 화면 단위를 인치에서 픽셀로 변환하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 |
using CommunityToolkit.WinUI.Helpers; float result = ScreenUnitHelper.Convert(ScreenUnit.Inch, ScreenUnit.Pixel, 1); // 96 |
■ ColorHelper 클래스의 ToHsv 확장 메소드를 사용해 Color 객체에서 HsvColor 객체를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 |
using Microsoft.UI; using CommunityToolkit.WinUI; using CommunityToolkit.WinUI.Helpers; HsvColor hsvColor = Colors.Red.ToHsv(); |
※ CommunityToolkit.WinUI.Helpers 누겟을
■ ColorHelper 클래스의 ToHsl 확장 메소드를 사용해 Color 객체에서 HslColor 객체를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 |
using Microsoft.UI; using CommunityToolkit.WinUI; using CommunityToolkit.WinUI.Helpers; HslColor hslColor = Colors.Red.ToHsl(); |
※ CommunityToolkit.WinUI.Helpers 누겟을
■ ColorHelper 클래스의 ToHex 확장 메소드를 사용해 색상에서 16진수 색상 문자열을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 |
using Microsoft.UI; using CommunityToolkit.WinUI; string hexadecimalColorString = Colors.Red.ToHex(); |
※ CommunityToolkit.WinUI.Helpers 누겟을
■ ColorHelper 클래스의 ToColor 확장 메소드를 사용해 문자열에서 Color 객체를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 |
using Windows.UI; using CommunityToolkit.WinUI.Helpers; Color color1 = "#ffff0000".ToColor(); Color color2 = "Red".ToColor(); |
※ CommunityToolkit.WinUI.Helpers 누겟을 설치했다.
■ TextBoxExtensions 엘리먼트의 ValidationMode/ValidationType/Regex 첨부 속성을 사용하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서 WindowsPackageType 태그를 None으로
■ DispatcherQueueExtensions 클래스의 EnqueueAsync 확장 메소드를 사용해 백그라운드 쓰레드에서 UI를 작업하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트
■ AttachedDropShadow 엘리먼트의 CastTo/CornerRadius/Offset 속성을 사용해 그림자 효과를 설정하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서 WindowsPackageType
■ StringExtensions 클래스의 IsEmail/IsDecimal 확장 메소드를 사용하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 |
using CommunityToolkit.Common; string text1 = "test@test.com"; bool result1 = text1.IsEmail(); // true string text2 = "123+888"; bool result2 = text2.IsDecimal(); // false |
※ CommunityToolkit.WinUI.Extensions 누겟을 참조했다.
■ NullableBool 태그 확장의 Value 속성을 사용해 NULL 가능한 BOOL 값을 설정하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj
■ DispatcherQueue 클래스의 GetForCurrentThread 정적 메소드를 사용해 현재 스레드의 DispatcherQueue 객체를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 |
using Microsoft.UI.Dispatching; DispatcherQueue dispatcherQueue = DispatcherQueue.GetForCurrentThread(); |
■ DispatcherQueueExtensions 클래스의 EnqueueAsync 확장 메소드를 사용해 DispatcherQueue 객체에서 특정 UI 스레드를 실행하는 방법을 보여준다. ▶ 예제 코드 (C#)
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 |
using System.Threading.Tasks; using Microsoft.UI.Dispatching; using Microsoft.UI.Xaml.Controls; using CommunityToolkit.WinUI; DispatcherQueue dispatcherQueue = DispatcherQueue.GetForCurrentThread(); await dispatcherQueue.EnqueueAsync ( () => { } ); int value1 = await dispatcherQueue.EnqueueAsync ( () => { return 42; } ); await dispatcherQueue.EnqueueAsync ( async () => { await Task.Delay(100); } ); int someOtherValue = await dispatcherQueue.EnqueueAsync ( async () => { await Task.Delay(100); return 42; } ); |
■ OnDevice 태그 확장의 Default/Desktop/Xbox 속성을 사용해 장치별 텍스트를 설정하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서
■ SymbolIconSource 태그 확장의 Symbol 속성을 사용해 심볼 아이콘 소스를 만드는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트
■ SymbolIcon 태그 확장의 Symbol 속성을 사용해 심볼 아이콘을 만드는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서
■ FontIconSource 확장 태그의 Glyph 속성을 사용해 폰트 아이콘 소스를 만드는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트
■ SymbolIcon 확장 태그의 Symbol 속성을 사용해 심볼 아이콘을 만드는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서
■ BitmapIcon 확장 태그의 Source 속성을 사용해 비트맵 아이콘을 만드는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트 파일에서
■ EnumValues 확장 태그의 Type 속성을 사용해 열거형 값 컬렉션을 구하는 방법을 보여준다. ※ 비주얼 스튜디오에서 TestProject(Unpackaged) 모드로 빌드한다. ※ TestProject.csproj 프로젝트