프로젝트 소개
ModernWPF는 Windows Presentation Foundation(WPF) 애플리케이션에 Fluent 스타일링과 최신 WinUI 기반 컨트롤을 추가하는 독립적이고 커뮤니티가 유지 관리하는 라이브러리입니다. WPF에서 직접 실행되며 WPF 런타임을 대체하거나 WinUI 역할을 하지 않습니다.
제공 기능:
- 기본 WPF 컨트롤에 대한 Fluent 스타일링(라이트, 다크, 고대비, 컴팩트 리소스 동작 포함).
- NavigationView, NumberBox, ContentDialog, InfoBar, CommandBarFlyout, ItemsRepeater와 같은 최신 컨트롤의 WPF 포트.
- 애플리케이션, 창, 요소 수준의 테마 API.
- 최신 창 크롬, 제목 표시줄 통합, 레이아웃 도우미, 리소스 프리미티브.
- 소스 기반 호환성 감사와 자동화된 API, 리소스, 테마, 접근성, 패키지, 런타임 테스트.
업스트림 프로젝트와의 관계: ModernWPF는 dotnet/wpf를 직접 기반으로 하며 WPF 동작을 유지합니다. 기본 컨트롤 스타일링에는 .NET 10에서 플랫폼 Fluent 테마를 사용하고, 지원되는 이전 대상에서는 호환 백포트를 사용합니다. 추가 최신 컨트롤은 WPF에 해당 항목이 없는 경우 microsoft-ui-xaml에서 포팅되며 문서화된 WPF 적응이 포함됩니다. 이 프로젝트는 Microsoft와 제휴하거나 보증하지 않는다고 명시합니다.
프로젝트 상태: 1.x 라인은 활성 미리 보기 라인이며, 1.0.0-preview.1은 첫 번째 API/리소스 감사 및 마이그레이션 기준선이고, API 동결 릴리스 후보와 안정적인 1.0.0을 위한 로드맵이 있습니다. 0.9.x 라인은 동결되어 지원되지 않습니다. 업데이트나 보안 수정이 계획되어 있지 않으며, 0.9.x와의 소스/바이너리 호환성은 보장되지 않습니다. 마이그레이션 가이드는 대상 프레임워크 변경, 리소스 항목, 이름 변경된 API, 1.x에서 MahApps 어댑터 제거를 다룹니다.
지원 대상: net462 및 net8.0-windows7.0은 ModernWPF Fluent 백포트를 사용하고, net10.0-windows7.0은 공식 PresentationFramework.Fluent 테마를 사용합니다. 폐기된 net45, netcoreapp3.0, net5.0-windows 자산은 1.x에 포함되지 않습니다.
시작하기: NuGet이 동결된 0.9.x 패키지를 선택하지 않도록 명시적 1.x 버전(예: dotnet add package ModernWpfUI --version 1.0.0-rc.1)을 설치합니다. App.xaml에 ThemeResources 및 FluentControlsResources를 추가한 다음 WindowHelper.UseModernWindowStyle로 창을 ModernWPF 스타일링에 적용하고 ui XAML 네임스페이스의 컨트롤을 사용합니다. 단계적 마이그레이션이 필요한 애플리케이션은 임시로 ThemeResources와 XamlControlsResources를 유지할 수 있습니다.
갤러리: ModernWpf.Gallery는 저장소의 대화형 카탈로그이자 개발 샘플로, 컨트롤, 테마, 창 크롬, 탐색, 대화 상자, 플라이아웃, 입력 동작을 보여줍니다. 이는 프로젝트 샘플이며 Microsoft의 공식 WPF 또는 WinUI 갤러리가 아닙니다. 빌드하려면 Windows, global.json에서 선택한 SDK, .NET 데스크톱 개발 워크로드가 필요하며, net462에는 .NET Framework 4.6.2 Developer Pack도 필요합니다. WPF 프로젝트가 공유 중간 파일을 두고 경합할 수 있으므로 솔루션 및 테스트 빌드를 병렬로 실행해서는 안 됩니다.
문서에는 1.0 로드맵, 미리 보기 및 릴리스 후보 릴리스 노트, 0.9.x 마이그레이션 가이드, 1.x 공개 API 계약, WinUI 소스 패리티 문서가 포함됩니다. 기여는 Discussions, 구조화된 미리 보기 버그 양식, Issues를 통해 이루어지며 변경 사항에 대한 회귀 테스트가 필요합니다.
라이선스: MIT. WPF 및 WinUI 소스 참조는 각각의 업스트림 고지 및 라이선스를 유지합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.