What's Changed
English
Following the MewUI.Skia and MewUI.MewDock extensions that shipped with v0.16.0, this release continues to grow the MewUI ecosystem with two more native extensions: the new MewUI.Svg library (deferred from v0.16.0) and the new MewUI.MewCharts charts extension. (All first-party MewUI extensions are implemented on top of MewUI’s IGraphicsContext abstraction without Skia.) On the core side, the Image control gains first-class vector image source support, the MewUI.WebView2.Win32 add-on package is renamed for naming consistency, and two outstanding layout bugs around MinWidth / MaxWidth constraints are fixed.
Added
Libraries
-
MewUI.Svglibrary — SVG rendering library that lives underextensions/MewUI.Svg. Builds on top of the v0.16.0 GPU interop foundation to composite SVG content directly onto each backend's GPU surface. Vendored on top of the SVG.NET submodule for the parser. Ships withSvgImageSource, which wraps an SVG document as anIImageSourceso it can be assigned toImage.Sourcelike any bitmap (with color tinting viaTintfor icon use cases), andMewUI.Svg.Sampleincludes an Icons tab that bundlesicons.zip(Simple Icons set) and demonstrates loading and tinting SVG icons at runtime.

-
MewUI.MewChartslibrary — charts extension built on a vendoredLiveChartsCore(LiveCharts2 v2.0.4) backend, drawing through the MewUI rendering pipeline.

Controls
- Vector image source support in
Imagecontrol — adds theIVectorImageSourceinterface and a dedicatedRenderVectorpath so that vector sources are measured and drawn at native vector resolution.Image.MeasureContentandOnRenderresolve vector vs. raster sources automatically.
Diagnostics / analyzers
MEW1104analyzer rule — code-fix that refactors "assignment to fluent call" patterns into idiomatic chained form. Documented in the analyzer README in both English and Korean.
Improved
Backend / platform
- GDI hit-test against complex clip regions via
PtVisible— pixel compositing is now restricted to the HDC clip bounds, improving culling accuracy for non-rectangular clips.
Controls
- Focus is cleared on a left click that hits no focus target (#91) — clicking empty space now releases focus instead of leaving the previous element selected.
Fixed
Layout
- Auto measure constraints not clamped to
MinWidth/MaxWidth(#173) — autoWidth/Heightnow clamp to the element's min/max bounds before measuring content, while explicitWidth/Heightkeep their existing desired-size behavior. - Explicit size lost after min/max constraints (#170) — an explicitly assigned
Width/Heightis now preserved after the min/max pass instead of being collapsed.
⚠️ Breaking Changes
MewUI.Win32.WebView2renamed toMewUI.WebView2.Win32— the package, source folder, and project / sample references are renamed to match theMewUI.<Feature>.<Platform>convention used by other platform-specific projects. Consumers must update theirPackageReference/ProjectReference.
변경 사항
v0.16.0에서 제공된 MewUI.Skia 및 MewUI.MewDock 확장에 이어, 이번 릴리스에서는 새로운 MewUI.Svg 라이브러리(v0.16.0에서 연기됨)와 새로운 MewUI.MewCharts 차트 확장을 추가하여 MewUI 생태계를 계속 확장합니다. (모든 MewUI 퍼스트파티 확장은 Skia 없이 MewUI의 IGraphicsContext 추상화를 기반으로 구현됩니다.) 코어에서는 Image 컨트롤에 벡터 이미지 소스가 정식으로 지원되고, 명명 규칙의 일관성을 위해 MewUI.WebView2.Win32 애드온 패키지의 이름이 변경되며, MinWidth / MaxWidth 제약과 관련된 두 가지 미해결 레이아웃 버그가 수정됩니다.
추가됨
라이브러리
MewUI.Svg라이브러리 —extensions/MewUI.Svg에 위치한 SVG 렌더링 라이브러리. v0.16.0에서 도입한 GPU 인터롭 기반 위에서 SVG 콘텐츠를 각 백엔드의 GPU 서피스 위로 직접 합성. 파서는 SVG.NET 서브모듈을 사용. SVG 문서를IImageSource로 래핑해 비트맵과 동일하게Image.Source에 할당할 수 있는SvgImageSource(아이콘 활용을 위한 컬러 틴팅Tint지원)를 함께 제공하며,MewUI.Svg.Sample에는 Simple Icons 세트가 담긴icons.zip을 번들로 제공하고 런타임에 SVG 아이콘을 로드 및 틴팅하는 Icons 탭이 포함되어 있음.MewUI.MewCharts라이브러리 —LiveChartsCore(LiveCharts2 v2.0.4) 백엔드 기반 차트 확장. MewUI 렌더링 파이프라인을 통해 그려짐.
컨트롤
Image컨트롤의 벡터 이미지 소스 지원 —IVectorImageSource인터페이스와 전용RenderVector경로 추가. 벡터 소스는 네이티브 벡터 해상도로 측정되고 그려지며,Image.MeasureContent/OnRender가 벡터 / 래스터 소스를 자동으로 분기 처리.
진단 / 분석기
MEW1104분석 규칙 — "fluent 호출에 대한 속성 대입" 패턴을 관용적인 체인 형태로 리팩터링하는 code fix. 분석기 README(한·영)에 규칙과 예제 문서화.
개선됨
백엔드 / 플랫폼
- GDI에서 복잡 클립 영역에 대한
PtVisible기반 히트테스트 — 픽셀 합성을 HDC 클립 범위로 제한하여 비사각형 클립에서의 컬링 정확도 향상.
컨트롤
- 타깃이 없는 좌클릭 시 포커스 해제 (#91) — 빈 공간 클릭 시 이전 요소를 그대로 두지 않고 포커스가 풀리도록 동작 변경.
수정됨
레이아웃
- 자동 측정 제약이
MinWidth/MaxWidth로 클램프되지 않던 문제 (#173) — 자동Width/Height가 콘텐츠 측정 전에 요소의 min/max 범위로 클램프되도록 수정. 명시적Width/Height의 desired-size 동작은 그대로 유지. - min/max 제약 적용 후 명시 크기가 사라지던 문제 (#170) — 명시적으로 지정한
Width/Height가 min/max 처리 후에도 그대로 유지되도록 보정.
⚠️ 호환되지 않는 변경 (Breaking Changes)
MewUI.Win32.WebView2→MewUI.WebView2.Win32로 이름 변경 — 다른 플랫폼 종속 프로젝트의MewUI.<Feature>.<Platform>규칙에 맞춰 패키지, 소스 폴더, 프로젝트 / 샘플 참조의 이름을 변경. 소비 측에서PackageReference/ProjectReference갱신 필요.
Full Changelog: v0.16.0...v0.17.0