๐Ÿ“–[WPF] .NET 10 Preview ์†Œ๊ฐœ

MAUI์— ๋น„ํ•ด WPF๋Š” ์—…๋ฐ์ดํŠธ์‚ฌํ•ญ์ด ์—†๋Š”๊ฐ€๋ณด๋‹ค ๋„˜์–ด๊ฐ€๋ ค๋˜ ์ฐฐ๋‚˜โ€ฆ๋‹ค๋ฅธ๋ฐฉ์‹์œผ๋กœ ์†Œ๊ฐœ๋ฅผํ•˜๊ณ ์žˆ์—ˆ๋”๊ตฐ์š”โ€ฆ.

ํ•˜์ง€๋งŒ, MAUI์— ๋น„ํ•ด ์ด๋ฏธ ๋ฉ์น˜๊ฐ€ ๊ฐ–์ถฐ์ ธ์žˆ๋Š” WPF์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋Šฅ๊ฐœ์„ , ์„ฑ๋Šฅํ–ฅ์ƒ์— ๋ชฐ๋‘ํ•œ ๊ทธ๋Ÿฐ ์—…๋ฐ์ดํŠธ์˜€์Šต๋‹ˆ๋‹ค.

.NET10 Preview (preview1 ~ rc2)

.NET 10 RC1์˜ WPF๋Š” ๋Œ€๊ทœ๋ชจ ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋ณด๋‹ค๋Š” ์„ฑ๋Šฅ ํ–ฅ์ƒ๊ณผ ์ฝ”๋“œ ์ •๋ฆฌ, Fluent UI ๊ฐœ์„ ์— ์ดˆ์ ์„ ๋งž์ท„์Šต๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ReadOnlyCollection<T> ๋“ฑ์œผ๋กœ ๊ต์ฒดํ•ด UI ์ž๋™ํ™”, ํŒŒ์ผ ๋Œ€ํ™”์ƒ์ž, ํ”ฝ์…€ ๋ณ€ํ™˜์˜ ํ• ๋‹น์„ ์ค„์ด๊ณ  ์†๋„๋ฅผ ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์บ์‹œยท๋ฐฐ์—ด ์ฒ˜๋ฆฌยท๊ธ€๊ผด ๋กœ๋”๋ฅผ ๊ด€๋ฆฌ ์ฝ”๋“œ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜์—ฌ ์„ฑ๋Šฅ์„ ๋†’์˜€๊ณ , ๊ธ€๊ผด ๋ Œ๋”๋งยท๋™์  ๋ฆฌ์†Œ์Šคยท์ž…๋ ฅ ์ปดํผ์ง€์…˜ยทXAML ํŒŒ์‹ฑ๋„ ์ตœ์ ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
Fluent ์Šคํƒ€์ผ์€ DatePicker, GridSplitter, RichTextBox, TextBox ๋“ฑ์œผ๋กœ ํ™•๋Œ€๋˜์—ˆ์œผ๋ฉฐ, HighContrastยทRTL ๋ ˆ์ด์•„์›ƒยท์• ๋‹ˆ๋ฉ”์ด์…˜ยทRecognizesAccessKey ๊ด€๋ จ ์˜ค๋ฅ˜๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ํด๋ฆฝ๋ณด๋“œ API๊ฐ€ WinForms์™€ ํ†ตํ•ฉ๋˜์–ด BinaryFormatter ์ œ๊ฑฐ๋กœ ์ธํ•œ ๋ถˆํŽธ์„ ์ค„์˜€๊ณ , JSON ๊ธฐ๋ฐ˜ ์ง๋ ฌํ™” ๋ฉ”์„œ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
CAS ๊ด€๋ จ ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ์™€ ๋ฆฌ์†Œ์Šค ๋ฌธ์ž์—ด์ด ์ œ๊ฑฐ๋˜์—ˆ์œผ๋ฉฐ, ์ฝ”๋“œ ํ‘œ์ค€ํ™”ยท๋””๋ฒ„๊น… ํŒจํ„ด ํ˜„๋Œ€ํ™”๋กœ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•ด์กŒ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ MessageBox์— Abort/Retry/Ignore, TryAgain, Continue ๋“ฑ ์ƒˆ๋กœ์šด ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ๊ณ , ๋””์ž์ธ ํƒ€์ž„ ํƒœ๊ทธ ์ปดํŒŒ์ผ ํ†ตํ•ฉ์œผ๋กœ ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ๊ฐ€ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

1๊ฐœ์˜ ์ข‹์•„์š”