Microsoft-ui-xaml: ์ œ์•ˆ: ํƒญ ์ปจํŠธ๋กค

์— ๋งŒ๋“  2019๋…„ 02์›” 13์ผ  ยท  47์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: microsoft/microsoft-ui-xaml

WinUI ํŒ€์€ ์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์‚ฌ์–‘ ๊ณผ PR ์„ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๋˜๋Š” API ์ œ์•ˆ์„ ์œ„ํ•œ ํ…œํ”Œ๋ฆฟ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ์œ ํ˜•์— ๋Œ€ํ•œ ์ƒˆ API๋ฅผ ์ œ์•ˆํ•˜๊ฑฐ๋‚˜ ์ƒˆ UI ์ปจํŠธ๋กค์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋ฅผ ์ œ์•ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์„ธ๋ถ€ ์‚ฌํ•ญ์ด ์—†์–ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์š”์•ฝ ๋ฐ ๊ทผ๊ฑฐ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋งํฌ๋Š” WinUI ๊ธฐ๋Šฅ/API ์ œ์•ˆ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. https://github.com/Microsoft/microsoft-ui-xaml-specs/blob/master/docs/feature_proposal_process.md ๊ธฐ๋Šฅ ๋˜๋Š” API ์ œ์•ˆ์— ๋Œ€ํ•œ ์ œ๋ชฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์งง๊ณ  ๊ตฌ์ฒด์ ์œผ๋กœ ๊ธฐ์ˆ ํ•ด ์ฃผ์‹ญ์‹œ์˜ค.

์ œ์•ˆ: ํƒญ ์ปจํŠธ๋กค

์š”์•ฝ


ํƒญ ์ปจํŠธ๋กค์€ ํƒญ ์ง‘ํ•ฉ๊ณผ ํ•ด๋‹น ์ฝ˜ํ…์ธ ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํƒญ ์ปจํŠธ๋กค์€ ์ฝ˜ํ…์ธ ์˜ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€(๋˜๋Š” ๋ฌธ์„œ)๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋™์‹œ์— ์‚ฌ์šฉ์ž์—๊ฒŒ ์ƒˆ ํƒญ์„ ์žฌ์ •๋ ฌ, ์—ด๊ฑฐ๋‚˜ ๋‹ซ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

Tabs in Edge

์ด๋ก ์  ํ•ด์„

๋ชจ๋“  ๊ฐœ๋ฐœ์ž์™€ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์ด ๊ธฐ๋Šฅ์„ WinUI์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ•˜์‹ญ์‹œ์˜ค. ํ•ด๋‹น๋˜๋Š” ๊ฒฝ์šฐ ํ˜„์žฌ WinUI ๋กœ๋“œ๋งต ๋ฐ ์šฐ์„  ์ˆœ์œ„์— ์–ด๋–ป๊ฒŒ ๋ถ€ํ•ฉํ•˜๋Š”์ง€ ์„ค๋ช…ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/Microsoft/microsoft-ui-xaml-specs/blob/master/docs/roadmap.md

UI ํŒจ๋Ÿฌ๋‹ค์ž„์œผ๋กœ์„œ ํƒญ์€ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์–ด ์™”์œผ๋ฉฐ ๋Œ€ํ™” ์ƒ์ž์—์„œ ๋ธŒ๋ผ์šฐ์ €์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋ชจ๋“  ๊ณณ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ œ์•ˆ์˜ ์ดˆ์ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ƒˆ ํƒญ์„ ์žฌ์ •๋ ฌํ•˜๊ณ  ์—ด๊ณ  ๋‹ซ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” "๋ฌธ์„œ ์Šคํƒ€์ผ" ํƒญ์ž…๋‹ˆ๋‹ค.

_Edge ๋ธŒ๋ผ์šฐ์ €์˜ ํƒญ_
Tabs in Edge

_Visual Studio์˜ ํƒญ_
Tabs in Visual Studio

"์ •์  ์Šคํƒ€์ผ" ํƒญ๋„ ํŒจ๋Ÿฌ๋‹ค์ž„์œผ๋กœ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. "์ •์  ์Šคํƒ€์ผ" ํƒญ์€ ํƒญ ์ „ํ™˜ ์ด์™ธ์˜ ์‚ฌ์šฉ์ž ์ƒํ˜ธ ์ž‘์šฉ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ํƒญ์ž…๋‹ˆ๋‹ค. UWP์—๋Š” Pivot ๋ฐ NavigationView ํ˜•์‹์˜ ์ •์  ์Šคํƒ€์ผ ํƒญ์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์ด ์ด๋ฏธ ์žˆ์Šต๋‹ˆ๋‹ค.

_WPF์˜ ์ •์  ์Šคํƒ€์ผ ํƒญ_
Tabs in WPF

์ ์ ˆํ•œ Tab ์ปจํŠธ๋กค์˜ ๋ถ€์กฑ์€ ํŠนํžˆ WPF์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์‹œ๋„ํ•˜๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ UWP์˜ ์ง€์†์ ์ธ ๊ณ ์ถฉ์ด์—ˆ์Šต๋‹ˆ๋‹ค .

XAML ํ”Œ๋žซํผ์€ Pivot ๋ฐ ์ƒ์œ„ NavigationView์—์„œ "์ •์  ์Šคํƒ€์ผ" ํƒญ์„ ๊ตฌํ˜„ํ•˜๋Š” ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ์†”๋ฃจ์…˜์€ ์‚ฌ์šฉ์ž ์žฌ์ •๋ ฌ, ํƒญ ์—ด๊ธฐ ๋ฐ ๋‹ซ๊ธฐ๋ฅผ ์ง€์›ํ•˜๋Š” "๋ฌธ์„œ ์Šคํƒ€์ผ" ํƒญ์„ ์ž˜ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ”Œ๋žซํผ์€ ์ƒ์œ„ NavigationView๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Van Arsdel ์ƒ˜ํ”Œ ์—์„œ "๋ฌธ์„œ ์Šคํƒ€์ผ" ํƒญ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
Tabs in the Van Arsdel app

์ด๋Ÿฌํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์—๋Š” "๋ฌธ์„œ ์Šคํƒ€์ผ" ํƒญ์„ ๋งŒ๋“ค๋ ค๋Š” ์ฐจ๋‹จ๋˜์ง€ ์•Š์€ ์•ฑ์ด ์žˆ์ง€๋งŒ ๋‹ค์Œ์„ ๋น„๋กฏํ•œ ์—ฌ๋Ÿฌ ์ œํ•œ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ„๋‹จํ•œ ํƒญ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์žฌํ…œํ”Œ๋ฆฟ์„ ํฌํ•จํ•˜์—ฌ ์ƒ๋‹นํ•œ ๋…ธ๋ ฅ
  • ํƒญ ๋‹ซ๊ธฐ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ œ๊ณต ์ง€์› ์—†์Œ
  • ์ƒˆ ์ฐฝ์œผ๋กœ ๋Œ์–ด์„œ ๋†“๊ธฐ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ œ๊ณต ์ง€์› ์—†์Œ
  • ์ฐฝ์—์„œ ํƒญ์„ ์ด๋™ํ•˜๊ณ  ๋‹ค๋ฅธ ์ฐฝ๊ณผ ๊ฒฐํ•ฉํ•˜๋Š” ๊ธฐ๋ณธ ์ œ๊ณต ์ง€์› ์—†์Œ
  • ์ œํ•œ๋œ ํ‚ค๋ณด๋“œ ๋ฐ ์ ‘๊ทผ์„ฑ ์ง€์›

๋‹คํ–‰ํžˆ Windows Community Toolkit ์€ ์•ž์„œ ์–ธ๊ธ‰ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” TabView ์ปจํŠธ๋กค ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

TabView in WCT

๊ทธ๋Ÿฌ๋‚˜ Windows Community Toolkit์€ ๊ด€๋ฆฌ๋˜๋Š”/C# ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, CLR ๋กœ๋“œ๋ฅผ ์›ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ํŠนํžˆ ์„ฑ๋Šฅ์— ์ค‘์ ์„ ๋‘” ๊ณ ๊ฐ์€ Windows Community Toolkit ๊ตฌํ˜„์„ ํ™œ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ ์ œ์•ˆ์˜ ๋ชฉํ‘œ๋Š” "๋ฐ”ํ€ด๋ฅผ ์žฌ๋ฐœ๋ช…"ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ WCT ๊ตฌํ˜„ ๋ฐ ํ† ๋ก  ์—์„œ ์–ป์€ ๊ตํ›ˆ์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ธฐ๋ณธ ์ปจํŠธ๋กค์„ WinUI์— ์ง์ ‘ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

-------------------- ์•„์ด๋””์–ด๋‚˜ ์ œ์•ˆ์„ ์ œ์ถœํ•  ๋•Œ ์•„๋ž˜ ์„น์…˜์€ ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. PR์„ ๋งˆ์Šคํ„ฐํ•˜๊ธฐ ์ „์— ๋ชจ๋“  ์„น์…˜์ด ํ•„์š”ํ•˜์ง€๋งŒ ํ† ๋ก ์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ----------------------

๊ธฐ๋Šฅ ์š”๊ตฌ ์‚ฌํ•ญ

| # | ๊ธฐ๋Šฅ | ์šฐ์„ ์ˆœ์œ„ |
|:--:|:--------|:--------:|
| 1. | ์‚ฌ์šฉ์ž๋Š” ๊ณตํ†ต ์ž…๋ ฅ(์˜ˆ: ctrl+tab)์„ ์‚ฌ์šฉํ•˜์—ฌ ํƒญ์„ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. | ํ•„์ˆ˜ |
| 2. | ์ปจํŠธ๋กค์— ํƒญ์„ ๋‹ซ๋Š” ๋ชจ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. | ํ•„์ˆ˜ |
| 3. | ์‚ฌ์šฉ์ž๊ฐ€ ์ƒˆ ํƒญ์„ ์—ด ์ˆ˜ ์žˆ์Œ | ํ•„์ˆ˜ |
| 4. | ์ปจํŠธ๋กค ์ง€์› ํƒญ "๋–ผ์–ด๋‚ด๊ธฐ" | ํ•„์ˆ˜ |
| 5. | ์ปจํŠธ๋กค์€ ํƒญ "์žฌ๊ฒฐํ•ฉ"์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค(๋™์ผํ•œ ํƒญ ๊ทธ๋ฃน์œผ๋กœ ๋˜๋Š” ํƒญ ๊ทธ๋ฃน ๊ฐ„์— ๋ชจ๋‘) | ํ•„์ˆ˜ |
| 6. | ์ปจํŠธ๋กค์€ ํƒญ ์žฌ์ •๋ ฌ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค | ํ•„์ˆ˜ |
| 7. | Control์€ ํƒญ ๋ชจ์Œ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. | ํ•„์ˆ˜ |
| 8. | ์ปจํŠธ๋กค์€ ์‚ฌ์šฉ์ž ์ •์˜ ๋จธ๋ฆฌ๊ธ€/๋ฐ”๋‹ฅ๊ธ€์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค | ํ•„์ˆ˜ |
| 9. | ๋ชจ๋“  ํƒญ์ด ์ ํ•ฉํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ œ์–ด๋Š” ๋ชจ๋“  ํƒญ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์–ดํฌ๋˜์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. | ํ•„์ˆ˜ |
| 10. | ํƒญ ํ•ญ๋ชฉ์—๋Š” ๋ ˆ์ด๋ธ”๊ณผ ์•„์ด์ฝ˜์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. | ํ•ด์•ผ |
| 11. | ํƒญ ๋†’์ด, ๋„ˆ๋น„ ๋ฐ ํ…œํ”Œ๋ฆฟ ์‚ฌ์šฉ์ž ์ •์˜ ๊ฐ€๋Šฅ | ํ•ด์•ผ |
| 12. | ์•ฑ์€ ํƒญ์˜ ํฌ๊ธฐ๋ฅผ ์„œ๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ฆ‰, ๋™์ผํ•œ ํฌ๊ธฐ, ์ฝ˜ํ…์ธ  ํฌ๊ธฐ ๋“ฑ) | ํ•ด์•ผ |
| 13. | ์ปจํŠธ๋กค์€ ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ ๋˜๋Š” ์•„๋ž˜์ชฝ์— ํƒญ์ด ์žˆ๋Š” ํƒญ ๋ฐฐ์น˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. | ์ˆ˜ |
| 14. | ์•ฑ์ด ํŠน์ • "๋‹ซ์„ ์ˆ˜ ์—†๋Š”" ํƒญ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ | ์ˆ˜ |

์ค‘์š” ์ฐธ๊ณ  ์‚ฌํ•ญ

๊ธฐํƒ€ ์ค‘์š”ํ•œ ๋””์ž์ธ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ํฌํ•จํ•˜์‹ญ์‹œ์˜ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ์‚ฌ์šฉ ์˜ˆ - API ์ œ์•ˆ(์ง€์›๋˜๋Š” ๋ชจ๋“  ์–ธ์–ด ๋˜๋Š” ์˜์‚ฌ ์ฝ”๋“œ ๊ดœ์ฐฎ์Œ) - ๋””์ž์ธ ๋ชจํ˜• ๋˜๋Š” ์˜ˆ์‹œ ์Šคํฌ๋ฆฐ์ƒท - ๊ธฐํƒ€ ๊ตฌํ˜„ ์ฐธ๊ณ  ์‚ฌํ•ญ

Microsoft Edge์˜ ๋™์ž‘์„ ๋ณต์ œํ•˜๋ ค๋ฉด:

<TabControl TabWidthBehavior="Equal"
            CanCloseTabs="True"
            CloseButtonOverlay="OnHover"
            CanDragItems="True"
            CanReorderItems="True"
            TabDraggedOutside="OpenTabInNewWindow">
    <TabControl.TabFooter>
        <Button Content="+" Click="NewTab_Click" />
    </TabControl.TabFooter>
    ...
</TabControl>

TabControl์€ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

<TabControl ItemsSource="{x:Bind TabItemCollection}" />

TabControl ์†์„ฑ ๋ฐ ์ด๋ฒคํŠธ

| ์žฌ์‚ฐ | ์œ ํ˜• | ์„ค๋ช… |
|:-------- |:---- |:-------------- |
| CanCloseํƒญ | ๋ถ€์šธ | IsClosable ๊ฐ’์„ ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ•ญ๋ชฉ์˜ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค. |
| ๋‹ซ๊ธฐ ๋ฒ„ํŠผ ์˜ค๋ฒ„๋ ˆ์ด | ์—ด๊ฑฐ | ๋‹ซ๊ธฐ ๋ฒ„ํŠผ์˜ ๋™์ž‘์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์€ {Auto, OnHover, Persistent} |
| ํ•ญ๋ชฉ ํ—ค๋” ํ…œํ”Œ๋ฆฟ | ๋ฐ์ดํ„ฐ ํ…œํ”Œ๋ฆฟ | ํ…œํ”Œ๋ฆฟ์ด ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ•ญ๋ชฉ์˜ ๊ธฐ๋ณธ ํ…œํ”Œ๋ฆฟ์ž…๋‹ˆ๋‹ค. |
| ์„ ํƒ ํƒญ ๋„ˆ๋น„ | ๋”๋ธ” | ์„ ํƒํ•œ ํƒญ ํ—ค๋”์˜ ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. |
| ํƒญํ—ค๋” | ๊ฐœ์ฒด | ํƒญ ์ŠคํŠธ๋ฆฝ์˜ ์™ผ์ชฝ์— ์žˆ๋Š” ์ฝ˜ํ…์ธ ์ž…๋‹ˆ๋‹ค. |
| ํƒญ ํ—ค๋” ํ…œํ”Œ๋ฆฟ | ๋ฐ์ดํ„ฐ ํ…œํ”Œ๋ฆฟ | ํ—ค๋”์šฉ ํ…œํ”Œ๋ฆฟ์ž…๋‹ˆ๋‹ค. |
| ํƒญ๋ฐ”๋‹ฅ๊ธ€ | ๊ฐœ์ฒด | ํƒญ ์ŠคํŠธ๋ฆฝ์˜ ๋งจ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ์ฝ˜ํ…์ธ ์ž…๋‹ˆ๋‹ค. |
| ํƒญ๋ฐ”๋‹ฅ๊ธ€ ํ…œํ”Œ๋ฆฟ | ๋ฐ์ดํ„ฐ ํ…œํ”Œ๋ฆฟ | ๋ฐ”๋‹ฅ๊ธ€์šฉ ํ…œํ”Œ๋ฆฟ์ž…๋‹ˆ๋‹ค. |
| ํƒญ์•ก์…˜ ์ฝ˜ํ…์ธ  | ๊ฐœ์ฒด | ํƒญ ๋ฐ”๋กœ ์˜ค๋ฅธ์ชฝ์— ์ฝ˜ํ…์ธ  |
| ํƒญ์•ก์…˜ ์ฝ˜ํ…์ธ  ํ…œํ”Œ๋ฆฟ | ๋ฐ์ดํ„ฐ ํ…œํ”Œ๋ฆฟ | ActionContent์— ๋Œ€ํ•œ ํ…œํ”Œ๋ฆฟ์ž…๋‹ˆ๋‹ค. |
| ํƒญ๋„ˆ๋น„๋™์ž‘ | ์—ด๊ฑฐ | ํƒญ์˜ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์€ {์‹ค์ œ, ๊ฐ™์Œ, ์••์ถ•} |

| ์ด๋ฒคํŠธ | ์„ค๋ช… |
|---|---|
| ํƒญ ๋‹ซ๊ธฐ | ํƒญ์ด ๋‹ซํžˆ๋ ค๊ณ  ํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ์‡„๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ทจ์†Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. |
| TabDraggedOutside | ํƒญ์ด ํƒญ ๋ฐ” ์™ธ๋ถ€๋กœ ๋“œ๋ž˜๊ทธ๋  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. |

TabItem ์†์„ฑ ๋ฐ ์ด๋ฒคํŠธ

| ์žฌ์‚ฐ | ์œ ํ˜• | ์„ค๋ช… |
|:-------- |:---- |:-------------- |
| ๋‚ด์šฉ | ๊ฐœ์ฒด | ํƒญ์— ํ‘œ์‹œ๋˜๋Š” ์ฃผ์š” ์ฝ˜ํ…์ธ ์ž…๋‹ˆ๋‹ค. |
| ํ—ค๋” | ๊ฐœ์ฒด | ํƒญ ์ž์ฒด์— ๋‚˜ํƒ€๋‚˜๋Š” ์ฝ˜ํ…์ธ ์ž…๋‹ˆ๋‹ค. |
| ํ—ค๋” ํ…œํ”Œ๋ฆฟ | ๋ฐ์ดํ„ฐ ํ…œํ”Œ๋ฆฟ | ํ—ค๋” ๊ฐœ์ฒด์— ๋Œ€ํ•œ ํ…œํ”Œ๋ฆฟ์ž…๋‹ˆ๋‹ค. |
| ์•„์ด์ฝ˜ | ์•„์ด์ฝ˜ ์š”์†Œ | ํƒญ์˜ ์•„์ด์ฝ˜์ž…๋‹ˆ๋‹ค. |
| ํ์‡„ ๊ฐ€๋Šฅ | ๋ถ€์šธ | ํƒญ์— ๋‹ซ๊ธฐ ๋ฒ„ํŠผ์ด ํ‘œ์‹œ๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. |

| ์ด๋ฒคํŠธ | ์„ค๋ช… |
|---|---|
| ํƒญ ๋‹ซ๊ธฐ | ํƒญ์˜ ๋‹ซ๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. |

Parts of a tab item

Position of TabHeader TabFooter and TabActionContent

์—ด๋ฆฐ ์งˆ๋ฌธ

์•„์ง ํ•ด๊ฒฐํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ๋ฅผ ๋‚˜์—ดํ•˜์‹ญ์‹œ์˜ค. ์—ฌ๊ธฐ์—๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ๋˜๋Š” WinUI ํŒ€์˜ ์˜๊ฒฌ์ด ๋„์›€์ด ๋  ๊ฒƒ์œผ๋กœ ์ƒ๊ฐ๋˜๋Š” ์˜์—ญ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ํƒญ ํ‹ฐ์–ด์˜คํ”„๋Š” ์ปจํŠธ๋กค์ด ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ์•ฑ์ด ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
์•ฑ์ด ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๋Š” ์ข‹์€ ์ƒ˜ํ”Œ์„ ๊ฐ€์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

2. "์ƒˆ ํƒญ ์ถ”๊ฐ€" ๋ฒ„ํŠผ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
์•ฑ์€ "ํƒญ ์ถ”๊ฐ€" ๋ฒ„ํŠผ์„ ์†Œ์œ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ„ฐ๋ฏธ๋„์˜ ๊ฒฝ์šฐ ๋“œ๋กญ๋‹ค์šด์ด ์žˆ๋Š” ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. "์ถ”๊ฐ€" ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ๋งŽ์€ ๊ฐ€์น˜๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

3. TabItem.Icon์€ IconElement ๋˜๋Š” IconElementSource์—ฌ์•ผ ํ•ฉ๋‹ˆ๊นŒ?
์•„์ด์ฝ˜ ์š”์†Œ. IconElementSource๋Š” ๋™์ผํ•œ ์•„์ด์ฝ˜์ด ํŠธ๋ฆฌ์˜ ์—ฌ๋Ÿฌ ์œ„์น˜์— ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  1. ์–ด๋–ป๊ฒŒ ์•ฑ์ด Selected ํƒญ์˜ ๋ชจ์–‘์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ(์˜ˆ: Edge์—์„œ)?

  2. API๋Š” ํ˜„์žฌ ํˆดํ‚ท์—์„œ ๋งŽ์€ ์˜๊ฐ์„ ์–ป์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ณต/๊ฐœ์„ ํ•  ๊ธฐํšŒ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฆด๋ฆฌ์Šค ์ฒดํฌ๋ฆฌ์ŠคํŠธ

์‹œํ—˜ํŒ ์ค€๋น„

  • [x] Dev: ํ’ˆ์งˆ ๊ฒ€ํ†  + ์ฝ”๋“œ ๊ฒ€ํ†  ์™„๋ฃŒ
  • [x] Dev: ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ์ถ”๊ฐ€๋จ
  • [x] Dev: ์ดˆ๊ธฐ ์ ‘๊ทผ์„ฑ ๊ฒ€ํ†  ์™„๋ฃŒ
  • [x] ๊ฐœ๋ฐœ: ์›๊ฒฉ ์ธก์ • ๊ตฌํ˜„
  • [x] PM: ์ตœ์‹  ์‚ฌ์–‘
  • [x] PM: ํ”ผ๋“œ๋ฐฑ ์ค€๋น„๊ฐ€ ๋œ ๊ธฐ๋Šฅ
  • [x] PM: docs.microsoft.com ์—…๋ฐ์ดํŠธ ์ค€๋น„ ์™„๋ฃŒ

    ์•ˆ์ •์ ์ธ ์ถœ์‹œ ์ค€๋น„

  • [x] Dev: ์ด์ „์— ์‹œํ—˜ํŒ NuGet ํŒจํ‚ค์ง€์— ์ œ๊ณต๋œ ๊ธฐ๋Šฅ

  • [x] Dev: Azure CI ํ…Œ์ŠคํŠธ ํ†ต๊ณผ
  • [x] ๊ฐœ๋ฐœ์ž: ์ ‘๊ทผ์„ฑ ๊ฒ€ํ†  ์™„๋ฃŒ
  • [x] ๊ฐœ๋ฐœ์ž: API ๊ฒ€ํ†  ์™„๋ฃŒ
  • [x] Dev: IDL ์†์„ฑ์ด ๋ฏธ๋ฆฌ ๋ณด๊ธฐ์—์„œ ๊ณต๊ฐœ๋กœ ์ „ํ™˜๋จ
  • [x] Dev: NugetReleaseTest ํ…Œ์ŠคํŠธ์— ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ ์ถ”๊ฐ€
  • [x] PM: ์‚ฌ์–‘ ์™„๋ฃŒ
  • [x] PM: glob/loc, ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ, ๋ณด์•ˆ, ๋ผ์ด์„ ์Šค ์ค€์ˆ˜ ์ค€๋น„
  • [x] PM: ๊ณ ๊ฐ ํ™•์ธ ์™„๋ฃŒ
  • [x] ์˜คํ›„: docs.microsoft.com ์—…๋ฐ์ดํŠธ๋จ
  • [x] PM: Xaml ์ปจํŠธ๋กค ๊ฐค๋Ÿฌ๋ฆฌ ์—…๋ฐ์ดํŠธ๋จ
feature proposal team-Controls

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ปจํŠธ๋กค์„ ์œ„ํ•œ ๋””์ž์ธ ๋ชฉ์—…์„ ๋‹ค๋“ฌ์—ˆ์Šต๋‹ˆ๋‹ค.

TabControl
_ํƒญ ์˜ค๋ฒ„ํ”Œ๋กœ ๋ฐ ํƒญ ํฌ๊ธฐ ์ถ”๊ฐ€_

๋ชจ๋“  47 ๋Œ“๊ธ€

Van Arsdel ์ƒ˜ํ”Œ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํˆดํ‚ท์˜ ๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ์ปจํŠธ๋กค์€ ํ•ญ์ƒ C++๋กœ ์ด์‹๋˜๊ณ  Windows UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํƒญ์€ ์„ฑ์ˆ™ํ•˜๊ณ  ์•ˆ์ •์ ์ผ ๋•Œ ์ด๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”์ธ ๋ฉ”๋‰ด ์ปจํŠธ๋กค์—์„œ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค :)

์ œ์•ˆ์„œ์—์„œ๋„ ์–ธ๊ธ‰๋œ ํƒญ ๋ถ„๋ฆฌ ์ƒ˜ํ”Œ ์— ๋Œ€ํ•œ ๋งํฌ์ž…๋‹ˆ๋‹ค.

์ œ์•ˆ์„œ์—์„œ๋„ ์–ธ๊ธ‰๋œ ํƒญ ๋ถ„๋ฆฌ ์ƒ˜ํ”Œ ์— ๋Œ€ํ•œ ๋งํฌ์ž…๋‹ˆ๋‹ค.

ํƒญ์„ ๋–ผ๋ฉด ์ƒˆ AppWindow, ์ƒˆ CoreWindow๊ฐ€ ์ƒ์„ฑ๋˜๋ฉฐ ์ƒˆ ์ฐฝ API๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๋Œ€์ฒด๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๊นŒ?

@mdtauk ์ƒ˜ํ”Œ์€ ํ˜„์žฌ ์ด์ „ ๋‹ค์ค‘ ์ฐฝ ApplicationView API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์ฐฝ์€ ๋“œ๋ž˜๊ทธํ•œ ์œ„์น˜ ๋Œ€์‹  ๊ธฐ๋ณธ ์œ„์น˜์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ €๋Š” AppWindow๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ์ƒˆ SDK์— ๋Œ€ํ•œ ์ƒ˜ํ”Œ์„ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ๋ฅผ ํฌ๋งํ•ฉ๋‹ˆ๋‹ค.

"์ด๋Ÿฌํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด WPF์˜ ํ”Œ๋žซํผ ๊ฒฉ์ฐจ๋ฅผ ํ•ด์†Œํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ์ง€๋งŒ ๋‹ค์Œ์„ ํฌํ•จํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ œํ•œ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค."

์—ฌ๊ธฐ์— ํ‚ค๋ณด๋“œ ์ž…๋ ฅ๋„ ๋‚˜์—ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹จ์ˆœํ•œ ํƒญ ํ‚ค๋‚˜ ๋ฐ”๋กœ ๊ฐ€๊ธฐ ํ‚ค๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. Arrowing์€ ํƒญ ์ปจํŠธ๋กค์ด ์—†์—ˆ์„ ๋•Œ ์šฐ๋ฆฌ๊ฐ€ ์–ด๋ ค์›€์„ ๊ฒช์—ˆ๋˜ ๋ฌธ์ œ์˜€์œผ๋ฉฐ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ํƒญ ์ปจํŠธ๋กค์ด ์—†๋Š” ์ƒํ™ฉ์—์„œ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํˆดํ‚ท์—์„œ ๋“ค์€ ๋ฏธํ•ด๊ฒฐ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ์˜๊ฒฌ:

  1. Tab Tearoff๋Š” ์ปจํŠธ๋กค์ด ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ์•ฑ์ด ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

ํƒญ ์ปจํŠธ๋กค์ด TabView(๋™์ผํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜• ํ˜ธ์ŠคํŒ…) ๊ฐ„์˜ ๋Œ๊ธฐ ๋ฐ ์žฌ๊ฒฐํ•ฉ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ฒ€์‚ฌ/์ฐจ๋‹จ ๊ธฐ๋Šฅ๊ณผ ํ•จ๊ป˜ ๋Œ๊ธฐ ์ด๋ฒคํŠธ๋ฅผ ๋…ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ TabView๊ฐ€ ์ฐฝ ์ˆ˜๋ช… ์ฃผ๊ธฐ๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋” ๊นŒ๋‹ค๋กœ์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•œ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ํƒญ์„ ๋Œ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ผ์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒญ์„ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ํƒญ์ด ์žˆ๋Š” ์ƒˆ '๊ธฐ๋ณธ' ์ฐฝ๊ณผ ๋น„๊ตํ•˜์—ฌ ํ•ด๋‹น ์ฝ˜ํ…์ธ ๋งŒ์„ ์œ„ํ•œ ํŠน์ˆ˜ ์ฐฝ์„ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ๋‹ค์ค‘ ์ฐฝ์— ๋Œ€ํ•œ ์ฝ”๋”ฉ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒคํŠธ๋ฅผ ๋…ธ์ถœํ•˜๊ณ  Windows ์ƒ์„ฑ/๊ด€๋ฆฌ๋ฅผ ๋•๊ธฐ ์œ„ํ•ด ๋„์šฐ๋ฏธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์‰ฌ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋˜๋Š” Windows ํ…œํ”Œ๋ฆฟ ์ŠคํŠœ๋””์˜ค์™€ ๊ฐ™์€ ๊ธฐ์กด ๋„์šฐ๋ฏธ๋ฅผ ํ™œ์šฉ). ์ด ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๊ฐ€์žฅ ๊นŒ๋‹ค๋กœ์šด ๋ถ€๋ถ„์€ ์Šค๋ ˆ๋“œ ๊ฐ„์˜ "๋ฐ์ดํ„ฐ ์ „์†ก"์œผ๋กœ, ์ตœ์†Œํ•œ ์ƒˆ ์ฐฝ API๊ฐ€ ์ด๋ฅผ ์™„ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

  1. ๋‚ด์žฅ๋œ "์ƒˆ ํƒญ ์ถ”๊ฐ€" ๋ฒ„ํŠผ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? (์ปจํŠธ๋กค์ด ํƒญ ์ปฌ๋ ‰์…˜์„ ์†Œ์œ ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์•„๋งˆ ์•„๋‹ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.)

์ ์ ˆํ•œ ํ—ค๋” ํ…œํ”Œ๋ฆฟ๊ณผ ์˜ˆ์ œ๊ฐ€ ์žˆ๋Š” ํ•œ ๊ตฌํ˜„์ž๊ฐ€ '์ถ”๊ฐ€' ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์†Œํ•œ ์ผ์ด๋ฏ€๋กœ ํŒจ๋Ÿฌ๋‹ค์ž„์ด ๋‹ค๋ฅธ ์ด๋ฒคํŠธ๋ฅผ ํ•„์š”๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด์žฅํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์›๋ž˜ ํˆดํ‚ท์—์„œ๋„ ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. :)

  1. TabItem.Icon์€ IconElement ๋˜๋Š” IconElementSource์—ฌ์•ผ ํ•ฉ๋‹ˆ๊นŒ?

NavigationViewItem์˜ ์†์„ฑ์„ ๋ชจ๋ฐฉํ•˜๊ธฐ ์œ„ํ•ด IconElement ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ IconElementSource ๋Š” IconElement ์ด๋ฏ€๋กœ IconElement ๊ฐ€ ๋” ๋„“์„์ˆ˜๋ก ์ข‹์ง€ ์•Š์Šต๋‹ˆ๊นŒ? WinUI์— Image ๋ฅผ ํ˜ธ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” IconElement ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค( BitmapIcon ์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ๊ฐ•์ œ ๋งˆ์Šคํ‚น ์—†์Œ). ๊ทธ๋Ÿฐ ์‹์œผ๋กœ Icon ์†์„ฑ์€ ๋ฉ‹์ง„ Vector Symbol/Font Icon ๋˜๋Š” ico/png ํŒŒ์ผ(๋ธŒ๋ผ์šฐ์ € ์œ ํ˜• ์‹œ๋‚˜๋ฆฌ์˜ค favicon์„ ์ƒ๊ฐํ•˜์„ธ์š”)์„ ํ˜ธ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์–ด๋–ป๊ฒŒ ์•ฑ์ด Selected ํƒญ์˜ ๋ชจ์–‘์„ ์‚ฌ์šฉ์ž ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ(์˜ˆ: Edge์—์„œ)?

์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์„ ํƒํ•œ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์™„์ „ํžˆ ๋‹ค๋ฅธ ํ…œํ”Œ๋ฆฟ๊ณผ ๊ฐ™์€ ๋…ธ์ถœ๋œ ์Šคํƒ€์ผ ์†์„ฑ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

  1. API๋Š” ํ˜„์žฌ ํˆดํ‚ท์—์„œ ๋งŽ์€ ์˜๊ฐ์„ ์–ป์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ณต/๊ฐœ์„ ํ•  ๊ธฐํšŒ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์šฐ๋ฆฌ๊ฐ€ ๋ฐ›์€ ํ”ผ๋“œ๋ฐฑ ํ•ญ๋ชฉ ์ค‘ ํ•˜๋‚˜๋Š” ํƒญ ๋์— ์žˆ๋Š” ๊ณต๊ฐ„์„ ์‚ฌ์šฉ์ž ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์™ผ์ชฝ/์˜ค๋ฅธ์ชฝ ์ˆ˜ํ‰ ์ •๋ ฌ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์žฅ์ž๋ฆฌ์™€ ๋‘ ๊ฐœ์˜ ๊ฐœ๋ณ„ ์˜์—ญ์— ๋ฌผ๊ฑด์„ ๋ถ™์ผ ์ˆ˜ ์žˆ๋Š” ๋‹จ์ผ ํ…œํ”Œ๋ฆฟ ์˜์—ญ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋‹ค๋ฅธ ์งˆ๋ฌธ:

  • [ ] ์ฝ˜ํ…์ธ  ์˜์—ญ์œผ๋กœ ๋“œ๋ž˜๊ทธํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ํ—ค๋”๊ฐ€ ๋ชจ๋‘ ๋Œ€์ƒ์ธ ๊ฒฝ์šฐ ๋“œ๋ž˜๊ทธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. ์•ฑ์ด ํƒญ ์˜์—ญ์— ๋‹ค๋ฅธ ํ•ญ๋ชฉ(์˜ˆ: ํƒ์ƒ‰๊ธฐ์˜ ํŒŒ์ผ)์„ ๋†“์„ ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?
  • [ ] "์•ฑ์—์„œ ํƒญ์˜ ์œ„์น˜/ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Œ"์ด TabStripPlacement ์†์„ฑ์— ๋Œ€ํ•ด ๋งํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ?

๋˜ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ 9์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์›๋ž˜ Edge ๋ชจ๋ธ(ํ˜„์žฌ ํˆดํ‚ท ์ปจํŠธ๋กค์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€)์„ ์‚ฌ์šฉํ• ์ง€ ์•„๋‹ˆ๋ฉด ๋“œ๋กญ๋‹ค์šด ๊ฐˆ๋งค๊ธฐ ๋ชจ์–‘์„ ๋งŒ๋“œ๋Š” NavigationView ๋ชจ๋ธ์„ ์‚ฌ์šฉํ• ์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•ด ๋…ผ์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์•„๋งˆ๋„ ๋ฏธ๋ž˜์— ์šฐ๋ฆฌ๊ฐ€ ๋‘˜ ๋‹ค ์ง€์›ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” SplitObservableCollection ์œ ํ˜• ๊ฐœ์ฒด๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌํ˜„์ด ๋” ๊ฐ„๋‹จํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— Edge ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ•˜๋‚˜์˜ ํ…Œ์ŠคํŠธ๋กœ ์ž‘์—…์„ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ ๊ทธ๊ฒƒ์ด ๋…ธ์ถœํ•˜๋Š” ๋ฐ ์œ ์šฉํ•œ ๊ตฌ์„ฑ์ด ๋ ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

@stmoy ์œ„์—์„œ ์šฐ๋ฆฌ๊ฐ€ ํˆดํ‚ท ๋””์ž์ธ์—์„œ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๋ฏธํ•ด๊ฒฐ ๋ฌธ์ œ/ํ”ผ๋“œ๋ฐฑ์„ ๋‹ซ์•˜์Šต๋‹ˆ๊นŒ?

Edge ํƒญ ๋ชจ๋ธ์„ ํฌ๊ธฐํ•˜๋Š” Windows ์„ธํŠธ์˜ ์†Œ์‹์ด ์ด ์ปจํŠธ๋กค์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์— ์–ด๋–ค ์˜ํ–ฅ์„ ์ค๋‹ˆ๊นŒ?

Edge์™€ ChromiumEdge(Edgium)๋ฅผ ์œ„ํ•ด UI๊ฐ€ ๊ฑฐ์˜ ๋ฒ„๋ ค์กŒ๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ปจํŠธ๋กค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์•ฑ ์œ ํ˜•์— ๋” ์ ํ•ฉํ•˜๋„๋ก ์ด ์ปจํŠธ๋กค์˜ ๋ชจ์–‘์ด๋‚˜ ๋™์ž‘์„ ์žฌ๊ณ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

  • ์†์„ฑ ๋Œ€ํ™” ์ƒ์ž;
  • MDI(๋‹ค์ค‘ ๋ฌธ์„œ ์ธํ„ฐํŽ˜์ด์Šค) - Photoshop๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณ ์ •๋œ ๋„๊ตฌ ํŒ”๋ ˆํŠธ(Visual Studio/Blend/Adobe CC);

Pivot ๋ฐ ๊ฐœ๋ฐœ ์ค‘์ธ UWP Ribbon๊ณผ ๊ฐ™์€ ์œ ์‚ฌํ•œ ์ปจํŠธ๋กค์€ ๋งํ•  ๊ฒƒ๋„ ์—†์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๊ถŒ์žฅ๋˜๋ฉฐ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋‹ค๋ฅธ ๊ฒƒ๋ณด๋‹ค ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด๋Ÿฌํ•œ ์งˆ๋ฌธ์— ๋‹ตํ•  ์ˆ˜ ์žˆ๋Š” ์ง€์นจ๊ณผ ์˜ˆ๋Š” ํ˜ผ๋™์„ ํ”ผํ•˜๊ฑฐ๋‚˜ ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚˜๊ณ  ๊ฐ€๋ฒผ์šด ์ปจํŠธ๋กค ๋Œ€์‹  ๋” ๋ฌด๊ฑฐ์šด ์ปจํŠธ๋กค์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ช…ํ™•ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํผ์ŠคํŠธ ํŒŒํ‹ฐ ์ปจํŠธ๋กค์€ ์˜ฌ๋ฐ”๋ฅธ ๋ชฉ์ ์„ ์œ„ํ•ด ์˜ฌ๋ฐ”๋ฅธ ์ปจํŠธ๋กค์„ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๊ด€๋œ ์‚ฌ์šฉ์„ ์ฃผ๋„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

#629 @mdtauk ์—์„œ ๊ธฐ๋Šฅ ์ œ์•ˆ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ToDo ๋ชฉ๋ก์— ๋Œ€ํ•œ ์•„์ด๋””์–ด์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒญ ๋ฐฐ์น˜? ํ•˜๋‹จ, ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ.

์˜ˆ, ํƒญ ๋ฐฐ์น˜๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹œ๋‚˜๋ฆฌ์˜ค์˜ WPF ํŒจ๋ฆฌํ‹ฐ์™€ ์ผ์น˜ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋Š ์‹œ์ ์—์„œ ์šฐ์„  ์ˆœ์œ„ ๋ชฉ๋ก์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ดˆ๊ธฐ ํˆดํ‚ท ๋ฒ„์ „์—๋„ ์ถ”๊ฐ€ํ•  ์‹œ๊ฐ„์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์˜ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•  ๋•Œ "์†์„ฑ ์‹œํŠธ ํƒญ" ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ง€์›ํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ € ํƒญ ์‹œ๋‚˜๋ฆฌ์˜ค์— ์ง‘์ค‘ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์†์„ฑ ์‹œํŠธ์™€ ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์ง€๋งŒ ์†์„ฑ ์‹œํŠธ ์€์œ ๋Š” ์œ ์ฐฝํ•œ ๋””์ž์ธ์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ํ˜„์žฌ ํ•ด๋‹น ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ NavigationView(์™ผ์ชฝ/์ƒ๋‹จ ๋ชจ๋“œ๊ฐ€ ์žˆ์Œ)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Navigation View๋Š” ๋ฌด๊ฑฐ์šด ์ปจํŠธ๋กค์ด๋ฉฐ ์ „์ฒด ํ™”๋ฉด์„ ์ฐจ์ง€ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Edge์˜ XAML ๋ฒ„์ „๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„ธํŠธ๊ฐ€ ๋กœ๋“œ๋งต์—์„œ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ TabView/Control์„ ๋‹ค์‹œ ์ƒ๊ฐํ•˜์—ฌ ๋ฏธ๋ž˜์— ๋” ์œ ์—ฐํ•˜๊ณ  ์œ ์šฉํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

image

image

image

TabView ์ปจํŠธ๋กค์— ์ถ”๊ฐ€ ๋ฐ ๋‹ซ๊ธฐ ๋‹จ์ถ”๋ฅผ ์ˆจ๊ธธ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” UWP XAML ์•ฑ์—์„œ ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํ”ผ๋ฒ— ์ปจํŠธ๋กค๋„ ์žˆ์ง€๋งŒ ์ƒ๋‹จ์˜ ํ”ผ๋ฒ— ํ—ค๋”๋งŒ ์ง€์›ํ•˜๋ฉฐ ํƒญ์€ ์ƒ๋‹จ, ํ•˜๋‹จ, ์™ผ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค...

๋‹ซ๊ธฐ ๋ฒ„ํŠผ์ด ์—†๋Š” ๊ฒƒ์„ ์ง€์›ํ•œ ํˆดํ‚ท์—์„œ ์ถ”๊ฐ€ ๋ฒ„ํŠผ์€ ๊ตฌํ˜„์ž๊ฐ€ ์Šค์Šค๋กœ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฌธ์„œ์™€ ํด๋ž˜์‹ ํƒญ ๊ฐ„์— ์ด๋Ÿฌํ•œ ๋‹ค์–‘ํ•œ ๋ชจ๋“œ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋„๋ก TabWidthBehavior ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. ์•„์ง ์ง€์›ํ•˜์ง€ ์•Š์€ ์ฃผ์š” ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋Š” ํƒญ ์œ„์น˜ ์ง€์ •์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ํ›Œ๋ฅญํ•œ ๋Œ€ํ™”์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๋น™๊ธ€๋น™๊ธ€ ๋Œ์•„...

์ฝ˜ํ…์ธ  ์˜์—ญ ๋Œ€ ํ—ค๋”๋กœ์˜ ๋“œ๋ž˜๊ทธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋“œ๋ž˜๊ทธ๊ฐ€ ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. ๋‘ ๋Œ€์ƒ ๋ชจ๋‘์ž…๋‹ˆ๊นŒ? ์•ฑ์ด ํƒญ ์˜์—ญ์— ๋‹ค๋ฅธ ํ•ญ๋ชฉ(์˜ˆ: ํƒ์ƒ‰๊ธฐ์˜ ํŒŒ์ผ)์„ ๋†“์„ ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

ํฅ๋ฏธ๋กœ์šด ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ˆœ์ง„ํ•˜๊ฒŒ๋„ TabControl์ด ํƒญ ์ŠคํŠธ๋ฆฝ ์˜์—ญ๊ณผ ์ฝ˜ํ…์ธ  ์˜์—ญ์„ ๋ชจ๋‘ ํ˜ธ์ŠคํŒ…ํ•˜๋ฏ€๋กœ ๋‘˜ ๋‹ค ๋™์ผํ•œ(ํฐ) ๋Œ€์ƒ์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ชจ๋ธ์€ Edge์™€ ๊ฐ™์€ ์•ฑ์„ ๊ณ ๋ คํ•  ๋•Œ ๋ฌด๋„ˆ์ง‘๋‹ˆ๋‹ค(์˜ˆ:). Edge๊ฐ€ ์ตœ๋Œ€ํ™”๋˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ํƒญ ์ŠคํŠธ๋ฆฝ ๋ฐ–์œผ๋กœ ํƒญ์„ ๋“œ๋ž˜๊ทธํ•˜์ง€๋งŒ ์ตœ๋Œ€ ํฌ๊ธฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ์ „ํžˆ ์ฝ˜ํ…์ธ  ์œ„์— ์žˆ๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๋Š” ํƒญ์ด ์ƒˆ ์ฐฝ์„ ์ƒ์„ฑํ•  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋จธ๋ฆฌ๊ธ€ ์˜์—ญ/ํƒญ ์ŠคํŠธ๋ฆฝ๋งŒ ๋Œ์–ด์„œ ๋†“๊ธฐ ๋Œ€์ƒ์ด ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

"์•ฑ์ด ํƒญ์˜ ์œ„์น˜/ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Œ"์ด TabStripPlacement ์†์„ฑ์— ๋Œ€ํ•ด ๋งํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ TabStripPlacement๊ฐ€ ์•„๋‹ˆ๋ผ "TabWidthBehavior" ์†์„ฑ ๋ฐ ์—ด๊ฑฐํ˜•์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์š”๊ตฌ ์‚ฌํ•ญ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ํƒญ ๋ฐฐ์น˜ ์š”๊ตฌ ์‚ฌํ•ญ๋„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค(์•„๋ž˜์—์„œ ์กฐ๊ธˆ ๋” ์„ค๋ช…).

Edge์˜ XAML ๋ฒ„์ „๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„ธํŠธ๊ฐ€ ๋กœ๋“œ๋งต์—์„œ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ด ์ž‘์—…์˜ ์ฃผ์š” ๋™๊ธฐ๋Š” ์‹ค์ œ๋กœ ์ƒˆ๋กœ์šด Windows ํ„ฐ๋ฏธ๋„ ์•ฑ ์ž…๋‹ˆ๋‹ค. ๊ณ„์†ํ•ด์„œ Tab ์ปจํŠธ๋กค์„ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ์•ฑ์„ ํ™•์žฅ/ํƒ์ƒ‰ํ•  ๊ฒƒ์ด์ง€๋งŒ, ์šฐ๋ฆฌ์˜ ์ฃผ์š” ์ดˆ์ ์€ ํ˜„์žฌ๋กœ์„œ๋Š” ํ•ด๋‹น ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํƒญ ๋ฐฐ์น˜๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€ํ•œ WPF ํŒจ๋ฆฌํ‹ฐ์™€ ์ผ์น˜ํ•˜๋„๋ก ํŠน์ • ์ง€์ ์—์„œ ์šฐ์„  ์ˆœ์œ„ ๋ชฉ๋ก์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ดˆ๊ธฐ ํˆดํ‚ท ๋ฒ„์ „์—๋„ ์ถ”๊ฐ€ํ•  ์‹œ๊ฐ„์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

ํƒญ ๋ฐฐ์น˜๋Š” ํŠนํžˆ WPF ํŒจ๋ฆฌํ‹ฐ์™€ ๊ด€๋ จํ•˜์—ฌ ๋ฉ‹์ง„ ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์œ„์˜ ๋‚ด์šฉ์— ๋”ฐ๋ฅด๋ฉด ์šฐ๋ฆฌ๋Š” ์ฃผ๋กœ ํ„ฐ๋ฏธ๋„์ด ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— "ํ•„์š”"๋ณด๋‹ค "ํ•  ์ˆ˜ ์žˆ์Œ"์— ๋” ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์œ„์˜ ์š”๊ตฌ ์‚ฌํ•ญ ํ‘œ์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

TabView ์ปจํŠธ๋กค์— ์ถ”๊ฐ€ ๋ฐ ๋‹ซ๊ธฐ ๋‹จ์ถ”๋ฅผ ์ˆจ๊ธธ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” UWP XAML ์•ฑ์—์„œ ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

TabControl์€ ํƒญ ์ž์ฒด์—์„œ ๋‹ซ๊ธฐ ๋ฒ„ํŠผ ์ˆจ๊ธฐ๊ธฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ "์ถ”๊ฐ€" ๋ฒ„ํŠผ์€ ์•ฑ ์ž์ฒด(์ปจํŠธ๋กค ์•„๋‹˜)์—์„œ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋Œ€๋กœ ์ปจํŠธ๋กค์„ ์‚ฌ์šฉํ•˜์—ฌ ์†์„ฑ ์Šคํƒ€์ผ ํƒญ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

ํƒญ ์ถ”๊ฐ€ ๋ฒ„ํŠผ์ด ์ปจํŠธ๋กค์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ์ปจํŠธ๋กค์ด ์‚ฌ์šฉ๋˜๋Š” ๊ณณ๋งˆ๋‹ค ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ๋ฒ„ํŠผ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ปจํŠธ๋กค์— ๋ฒ„ํŠผ ์Šคํƒ€์ผ๊ณผ XAML ๋ช…๋ น์„ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

@stmoy ๋“œ๋ž˜๊ทธ ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ๊ฒฝ์šฐ ํ—ค๋”๋กœ ๋“œ๋ž˜๊ทธํ•˜๋ฉด ์˜์—ญ์ด ๋‹ค๋ฅด๊ฑฐ๋‚˜ ๊ฐ™์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ƒ˜ํ”Œ์ด ๋–ผ์–ด๋‚ด๊ธฐ์— ๋Œ€ํ•œ ๋“œ๋ž˜๊ทธ๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์˜ˆ๋ฅผ ๋“ค์–ด ๊ธฐ๋ณธ ์ฝ˜ํ…์ธ  ์˜์—ญ์— ํŒŒ์ผ์„ ๋“œ๋กญํ•˜๊ณ  ์ด๋ฅผ ์žก๋Š” ๋ฐฉ๋ฒ•(์ปจํŠธ๋กค ์ž์ฒด์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚  ์ˆ˜ ์žˆ์ง€๋งŒ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์˜ ์‚ฌ์šฉ๋ฒ•์—).

๋ฒ„ํŠผ ์Šคํƒ€์ผ ๋ฐ XAML ๋ช…๋ น [์ƒˆ ํƒญ ์ถ”๊ฐ€์šฉ]

@mdtauk - ์ข‹์€ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ์‚ฌ์–‘์— ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ƒ˜ํ”Œ์ด ๋–ผ์–ด๋‚ด๊ธฐ์— ๋Œ€ํ•œ ๋“œ๋ž˜๊ทธ๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์˜ˆ๋ฅผ ๋“ค์–ด ๊ธฐ๋ณธ ์ฝ˜ํ…์ธ  ์˜์—ญ์— ํŒŒ์ผ์„ ๋“œ๋กญํ•˜๊ณ  ์ด๋ฅผ ์žก๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

@michael-hawker - ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ƒ˜ํ”Œ์ด ๊ฐ€์น˜๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŒŒ์ผ์„ ๋Œ์–ด์˜ค๋Š” ๊ฒƒ์ด ์ฝ˜ํ…์ธ  ์˜์—ญ์—์„œ ์ฒ˜๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํƒญ๋ณ„๋กœ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”. ํ˜„์žฌ PR ์šฉ์œผ๋กœ ์ œ๊ณต๋˜๋Š” Tabs ์‚ฌ์–‘ ์„ ๋ฐ˜๋ณตํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ๋ ค๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํ”ผ๋“œ๋ฐฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ PR์— ์˜๊ฒฌ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค!

Edge์˜ ํƒญ๋ณด๋‹ค Chrome์˜ ํƒญ์ฒ˜๋Ÿผ ๋Š๊ปด์ง„๋‹ค๋Š” ์†๊ฐ€๋ฝ์ด ๊ต์ฐจํ–ˆ์Šต๋‹ˆ๋‹ค.

Edge์˜ ํƒญ๋ณด๋‹ค Chrome์˜ ํƒญ์ฒ˜๋Ÿผ ๋Š๊ปด์ง„๋‹ค๋Š” ์†๊ฐ€๋ฝ์ด ๊ต์ฐจํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ƒํ˜ธ ์ž‘์šฉ ๋””์ž์ธ์ด "์˜ฌ๋ฐ”๋ฅธ ๋Š๋‚Œ"์„ ์ฃผ๊ธฐ๋ฅผ ์›ํ•˜๋ฏ€๋กœ ๋ฐฐ์†ก ์ „์— ๋ฐ”๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋ฒ„์ „์— ๋Œ€ํ•œ ํŠน์ • ํ”ผ๋“œ๋ฐฑ์ด ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ํ™•์‹คํžˆ ์ œ์ถœํ•˜์‹ญ์‹œ์˜ค!

@chigy ์™€ ๊ฐ™์€ ์‚ฌ๋žŒ์ด ์ด๋ฏธ TabView ์ปจํŠธ๋กค์— ๋Œ€ํ•œ ๋””์ž์ธ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰ํ–ˆ์œผ๋ฉฐ ์•ž์œผ๋กœ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ์ธก๋ฉด ๋ฐ ํ•˜๋‹จ ๋ฐฐ์น˜ ์˜ต์…˜๋„ ์‹œ์—ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

Tab Bar

๋‹ซ๊ธฐ ๋ฒ„ํŠผ ํ˜ธ๋ฒ„/๋ˆŒ๋ฆผ ์ƒํƒœ๊ฐ€ ๋ฒ„ํŠผ์˜ ์ „๊ฒฝ์ด ์•„๋‹Œ ๋ฐฐ๊ฒฝ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐฐ๊ฒฝ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฒ„ํŠผ์ด ๋„ˆ๋ฌด ๊ฐ•์กฐ๋˜๊ณ (ํƒญ ์ œ๋ชฉ์—์„œ ๋ฉ€์–ด์ง) ํ›„์ž๊ฐ€ ํ›จ์”ฌ ๋” ์šฐ์•„ํ•ด์ง‘๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Edge UWP์˜ ๋‹ซ๊ธฐ ๋ฒ„ํŠผ(์ „๊ฒฝ ๋ณ€๊ฒฝ๋งŒ ํ•ด๋‹น) ๋˜๋Š” Edge(Chromium)์˜ ํƒญ ์˜ค๋””์˜ค ์Œ์†Œ๊ฑฐ ๋ฒ„ํŠผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‚˜๋Š” ์ „๊ฒฝ ๋ณ€๊ฒฝ์„ ๊ณ ์ˆ˜ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ–ˆ์ง€๋งŒ ๋ฐฐ๊ฒฝ ๋ณ€๊ฒฝ์ด ๋‹ค๋ฅธ ์ปจํŠธ๋กค ๋ฐ ์ œ๋ชฉ ํ‘œ์‹œ์ค„ ๋™์ž‘๊ณผ ์ธ๋ผ์ธ์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ „๊ฒฝ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@mdtauk - ๋‹น์‹ ์€ ๋ฐ”์œ„์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋””์ž์ธ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ปจํŠธ๋กค์˜ ์ฒซ ๋ฒˆ์งธ ๋“œ๋กญ์— ๋Œ€ํ•ด ์ธก๋ฉด ๋ฐฐ์น˜๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด์ง€๋งŒ ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ๋ณด์ผ์ง€ ๋ณด๋Š” ๊ฒƒ์€ ์ข‹์Šต๋‹ˆ๋‹ค.

@chigy ์™€ ์ €๋Š” Windows ์›์น™(๋‘ฅ๊ทผ ๋ชจ์„œ๋ฆฌ, ํ‘œ์ค€ ๊ทธ๋ฆผ์ž ๋“ฑ ํฌํ•จ)๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๋””์ž์ธ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ํ˜‘๋ ฅํ•˜๊ณ  ์žˆ์ง€๋งŒ ๊ท€ํ•˜๊ฐ€ ์ œ๊ณตํ•œ ๋””์ž์ธ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ์˜๊ฐ์„ ์ฃผ๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ซ๊ธฐ ๋ฒ„ํŠผ ํ˜ธ๋ฒ„/๋ˆŒ๋ฆผ ์ƒํƒœ๊ฐ€ ๋ฒ„ํŠผ์˜ ์ „๊ฒฝ์ด ์•„๋‹Œ ๋ฐฐ๊ฒฝ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐฐ๊ฒฝ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฒ„ํŠผ์ด ๋„ˆ๋ฌด ๊ฐ•์กฐ๋˜๊ณ (ํƒญ ์ œ๋ชฉ์—์„œ ๋ฉ€์–ด์ง) ํ›„์ž๊ฐ€ ํ›จ์”ฌ ๋” ์šฐ์•„ํ•ด์ง‘๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ํ˜„์žฌ ์ƒ๊ฐ์€ ์—ฌ๊ธฐ์—์„œ ์ œ์•ˆํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฐฐ๊ฒฝ์ด ์•„๋‹Œ ์ „๊ฒฝ์ƒ‰์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ๊ณ ๋ คํ•˜๊ณ  ์žˆ๋Š” ๋‘ฅ๊ทผ ๋ชจ์„œ๋ฆฌ์— ์กฐ๊ธˆ ๋” ์ž˜ ๋งž๋Š” ์ถ”๊ฐ€ ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Edge ํƒญ์€ ๋‹ซ๊ธฐ ๊ธ€๋ฆฌํ”„ ๋’ค์— ๋ฐฐ๊ฒฝ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ์ œ์•ˆํ•œ ๊ฒƒ๋ณด๋‹ค ์ž‘์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Edgium ํƒญ์€ ์•„์ง ์–ด๋–ค ํ„ฐ์น˜ ๋ชจ๋“œ๋„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

image

ํˆดํ‚ท ๋””์ž์ธ์„ ์œ„ํ•œ ์‚ฌ์ด๋“œ ํƒญ์„ ์ƒ๊ฐํ•  ๋•Œ @mdtauk ์—์„œ ๋ณด์—ฌ์ฃผ๋“ฏ์ด ํšŒ์ „๋œ ํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ธ๋กœ๋กœ ํƒญ์„ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ ์—ฌ์ „ํžˆ ๊ฐ€๋กœ๋กœ ์œ ์ง€ํ•˜๊ณ  OneNote์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์™ผ์ชฝ/์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋” ํฐ ์—ฌ๋ฐฑ์„ ์ฐจ์ง€ํ•˜๋Š” ๊ฒƒ ์‚ฌ์ด์—์„œ ๊ณ ๋ฏผํ–ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ์žฌ์„ค๊ณ„ ์ด์ „์— WPF(ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•จ)์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ WPF๊ฐ€ ๋„“์€ ์—ฌ๋ฐฑ๊ณผ ๊ฐ€๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์œ ์ง€ํ•˜๋˜ ์—ฌ๊ธฐ์— ํ‘œ์‹œ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋‘˜ ๋‹ค ์ง€์›ํ•˜๋Š” ๊ฒƒ์„ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด #546์„ ์ง€์›ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์ด์œ ์ž…๋‹ˆ๋‹ค.

@michael-hawker ์ €๋Š” ์—ฌ๋ฐฑ์ด ๋„“์€ ์˜ค๋ฅธ์ชฝ์— ์„ธ๋กœ ํƒญ ๋ชฉ๋ก์ด ์žˆ๊ณ  Visual Studio์—์„œ์ฒ˜๋Ÿผ ์‰ฝ๊ฒŒ ํšŒ์ „ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ์ง€์ง€ํ•ฉ๋‹ˆ๋‹ค.

ํƒญ์ŠคํŒŸ ์ „ํ›„์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ฒ ์ง€๋งŒ ์›”์š”์ผ์— ์ง‘์—๊ฐ€๋ฉด ๋””์ž์ธ ๋ชฉ์—…์„ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค

ํƒญ์ŠคํŒŸ ์ „ํ›„์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ฒ ์ง€๋งŒ ์›”์š”์ผ์— ์ง‘์—๊ฐ€๋ฉด ๋””์ž์ธ ๋ชฉ์—…์„ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค

๋‚˜๋Š” ์ง‘์— ์žˆ๊ณ  ์—ฌ๊ธฐ ๊ทธ ๋””์ž์ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค:
image

์ปจํŠธ๋กค์„ ์œ„ํ•œ ๋””์ž์ธ ๋ชฉ์—…์„ ๋‹ค๋“ฌ์—ˆ์Šต๋‹ˆ๋‹ค.

TabControl
_ํƒญ ์˜ค๋ฒ„ํ”Œ๋กœ ๋ฐ ํƒญ ํฌ๊ธฐ ์ถ”๊ฐ€_

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํƒญ ๊ฐœ๋…์€ Edge Chromium ํƒญ๋ณด๋‹ค Edge UWP ํƒญ๊ณผ ํ›จ์”ฌ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. IMO ํƒญ ์ปจํŠธ๋กค์˜ ๋ชจ์–‘์€ Edge UWP์˜ ํƒญ ์ปจํŠธ๋กค๊ณผ ์ตœ๋Œ€ํ•œ ์œ ์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Edge UWP์™€ ๊ฐ™์€ ํƒญ ์ปจํŠธ๋กค ๋ฐฐ๊ฒฝ์œผ๋กœ ์•„ํฌ๋ฆด๋„ ๊ฝค ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ํƒญ ๋‹ซ๊ธฐ ๋ฒ„ํŠผ์ด Edge UWP์™€ ๊ฐ™์ด ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ํฌ๋งํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๋ฒ„ํŠผ์€ ํ˜„์žฌ ์„ ํƒ๋œ ํƒญ์ด๋‚˜ ํƒญ ๋งˆ์šฐ์Šค ํ˜ธ๋ฒ„์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

WinUI ํŒ€: @stmoy ๋ถ„๋ช…ํžˆ Windows ํ„ฐ๋ฏธ๋„ ํŒ€์€ ํƒญ ์ปจํŠธ๋กค์˜ ๋ฐฐ๊ฒฝ์œผ๋กœ ์•„ํฌ๋ฆด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(https://github.com/microsoft/terminal/issues/1375 ์ฐธ์กฐ). ํ„ฐ๋ฏธ๋„ ํŒ€์€ ์•„ํ‚คํ…์ฒ˜ ์ œํ•œ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด WinUI ํŒ€์ด ๋„์šธ ์ˆ˜ ์žˆ๋Š” ์ผ์ž…๋‹ˆ๊นŒ? Edge UWP์—์„œ์™€ ๊ฐ™์ด ํƒญ ์ปจํŠธ๋กค์— ๋Œ€ํ•œ ์•„ํฌ๋ฆด ๋ฐฐ๊ฒฝ์˜ ํŒฌ์ด ๊ฝค ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@Felix-Dev Edgeium์ด ์•ž์œผ๋กœ ๋‚˜์•„๊ฐ€์•ผ ํ•  ์ƒˆ๋กœ์šด ๋””์ž์ธ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ UWP Edge ๋””์ž์ธ์ด ์กฐ๊ธˆ ๋” ๋ฉ‹์ง€๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ ๊ฒฉ์ฐจ๋ฅผ ์ขํžˆ๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ํƒญ ๋‹ซ๊ธฐ ๋ฒ„ํŠผ์ด Edge UWP์™€ ๊ฐ™์ด ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ํฌ๋งํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๋ฒ„ํŠผ์€ ํ˜„์žฌ ์„ ํƒ๋œ ํƒญ์ด๋‚˜ ํƒญ ๋งˆ์šฐ์Šค ํ˜ธ๋ฒ„์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

CloseButtonOverlay ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค

@mdtauk
๋ช…ํ™•ํžˆ ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ซ๊ธฐ ๋ฒ„ํŠผ์ด ๋ชจ๋“  ํƒญ์— ์ง€์†์ ์œผ๋กœ ํ‘œ์‹œ๋˜๋Š” ๋Œ€์‹ (ํƒญ ์ œ๋ชฉ imo์—์„œ ๊ณต๊ฐ„์„ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ฐจ์ง€ํ•จ) CloseButtonOverlay = OnHover๊ฐ€ ํƒญ ์ปจํŠธ๋กค์˜ ๊ธฐ๋ณธ๊ฐ’์ด ๋˜๋„๋ก ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

ํ•ญ์ƒ ํ‘œ์‹œ๋Š” ํ„ฐ์น˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฐ€์žฅ ์ ํ•ฉํ•˜๋ฏ€๋กœ ๊ธฐ๋ณธ๊ฐ’์€ ๊ฐ€๋Šฅํ•œ ํ•œ ํฌ๊ด„์ ์ด์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‹ซ๊ธฐ ๋ฒ„ํŠผ์˜ ์˜ค๋ฒ„๋ ˆ์ด ๋ชจ๋“œ๋Š” ์‚ฌ์šฉ์ž์˜ ๋””์Šคํ”Œ๋ ˆ์ด ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋””์Šคํ”Œ๋ ˆ์ด ์œ ํ˜•์— ๋”ฐ๋ผ ํƒญ ์ปจํŠธ๋กค์— ์•ฝ๊ฐ„์˜ ์‹œ๊ฐ์  ์ฐจ์ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ๋“  ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ซ๊ธฐ ๋ฒ„ํŠผ์˜ ์˜ค๋ฒ„๋ ˆ์ด ๋ชจ๋“œ๋Š” ์‚ฌ์šฉ์ž์˜ ๋””์Šคํ”Œ๋ ˆ์ด ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋””์Šคํ”Œ๋ ˆ์ด ์œ ํ˜•์— ๋”ฐ๋ผ ํƒญ ์ปจํŠธ๋กค์— _์•ฝ๊ฐ„_ ์‹œ๊ฐ์ ์ธ ์ฐจ์ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ๋“  ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๋Š” ํ”Œ๋ผ์ด์•„์›ƒ์„ ํŠธ๋ฆฌ๊ฑฐํ•œ ์ž…๋ ฅ ์œ ํ˜•์„ ๊ฐ์ง€ํ•˜์—ฌ ํ„ฐ์น˜ ์ž…๋ ฅ์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ๊ฒฝ์šฐ ๋” ํฐ ํ„ฐ์น˜ ๋Œ€์ƒ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ”Œ๋ผ์ด์•„์›ƒ๊ณผ ๊ฐ™์€ ์ž‘์—…์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ถ€ ํ„ฐ์น˜ ์žฅ์น˜์—๋Š” ๋งˆ์šฐ์Šค๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ญ์ƒ ํ‘œ์‹œ๋˜๋Š” ์ปจํŠธ๋กค์—๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๋Š” ๋ฌผ๋ก  ๊ธฐ๋ณธ ์˜ต์…˜์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์•ฑ์—์„œ ๋‹ซ๊ธฐ ๋ฒ„ํŠผ์ด ํ˜ธ๋ฒ„๋ง ์‹œ์—๋งŒ ํ‘œ์‹œ๋˜๋„๋ก ์š”๊ตฌํ•˜๋Š” ๋งŽ์€ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์œผ๋ฉด ๋ณ€๊ฒฝํ•˜๋„๋ก ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํƒญ ์˜ค๋ฒ„ํ”Œ๋กœ์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
image

์ด๊ฑฐ ๋„ˆ๋ฌด ์ข‹์•„.

์ž‘์€ ๊ฒƒ ํ•˜๋‚˜. ๊ทธ๋ฆผ์ž์™€ ๋‘ฅ๊ทผ ๋ชจ์„œ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์„ ํƒํ•œ ํƒญ ํ•ญ๋ชฉ๊ณผ ๋ฐฐ๊ฒฝ ๊ฐ€์žฅ์ž๋ฆฌ ์‚ฌ์ด์— ์•ฝ๊ฐ„์˜ ๊ฐ„๊ฒฉ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฑฐ ๋„ˆ๋ฌด ์ข‹์•„.

์ž‘์€ ๊ฒƒ ํ•˜๋‚˜. ๊ทธ๋ฆผ์ž์™€ ๋‘ฅ๊ทผ ๋ชจ์„œ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์„ ํƒํ•œ ํƒญ ํ•ญ๋ชฉ๊ณผ ๋ฐฐ๊ฒฝ ๊ฐ€์žฅ์ž๋ฆฌ ์‚ฌ์ด์— ์•ฝ๊ฐ„์˜ ๊ฐ„๊ฒฉ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์™œ ํ•„์š”ํ•œ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค... ์ฐฝํ‹€์— ๊ทธ๋ฆผ์ž๊ฐ€ ์ž˜๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๊ทธ๋ฆผ์ž๊ฐ€ ์œ„์— ๋ณด์ด๋„๋ก ๋ฏธํ•™์  ์„ ํƒ์ž…๋‹ˆ๊นŒ?

ํƒญ ํฌ๊ธฐ ์กฐ์ •
image

@mdtauk : ์ €๋Š” ์ด ๋””์ž์ธ๋“ค์„ ๋ณด๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค! ๋ช‡ ๊ฐ€์ง€ ์กฐ์‚ฌ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ณด๋ผ์ƒ‰์ด ํฌ์ธํŠธ ์ปฌ๋Ÿฌ์ธ๊ฐ€์š”?
  • ์˜ค๋ฒ„ํ”Œ๋กœ ์Šคํฌ๋ฆฐ์ƒท์˜ ๋ชฉ์ ์€ ๋ฒ”ํผ๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๋‚˜๋Š” ๋‹จ์ง€ ๋‚ด๊ฐ€ ๊ทธ๋ฆผ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฝ๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๋ฟ์ž…๋‹ˆ๋‹ค.
  • ํƒญ์˜ ๋ชจ์„œ๋ฆฌ ๋ฐ˜๊ฒฝ์€ ์–ผ๋งˆ์ž…๋‹ˆ๊นŒ?
  • ํƒญ์˜ ๋†’์ด๋Š” ์–ผ๋งˆ์ž…๋‹ˆ๊นŒ?
  • ์–ด๋–ค ๊ธ€๊ผด ํฌ๊ธฐ๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

์ด ๋””์ž์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ„ฐ๋ฏธ๋„์—์„œ ์นœ๊ตฌ๋“ค๊ณผ ์ด์•ผ๊ธฐํ•˜๊ณ  ๊ทธ๋“ค์ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋Š”์ง€ ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋””์ž์ธ์—๋Š” ํ˜„์žฌ ๋ฐฉํ–ฅ์˜ ๋ช‡ ๊ฐ€์ง€ ๋ธํƒ€๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€ํ™”๋ฅผ ์ด‰์ง„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.


@Felix-Dev : ํ”ผ๋“œ๋ฐฑ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ ๊ท€ํ•˜์˜ ์š”์  ์ค‘ ์ผ๋ถ€๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํƒญ ๊ฐœ๋…์€ Edge Chromium ํƒญ๋ณด๋‹ค Edge UWP ํƒญ๊ณผ ํ›จ์”ฌ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. IMO ํƒญ ์ปจํŠธ๋กค์˜ ๋ชจ์–‘์€ Edge UWP์˜ ํƒญ ์ปจํŠธ๋กค๊ณผ ์ตœ๋Œ€ํ•œ ์œ ์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Edge UWP์™€ ๊ฐ™์€ ํƒญ ์ปจํŠธ๋กค ๋ฐฐ๊ฒฝ์œผ๋กœ ์•„ํฌ๋ฆด๋„ ๊ฝค ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ์•ฑ ๊ฒฝํ—˜ ์ „๋ฐ˜์— ๊ฑธ์ณ ํƒญ์„ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ํŒ€(ํ„ฐ๋ฏธ๋„ ๋ฐ ์—์ง€ ํŒ€ ํฌํ•จ)๊ณผ ์ ๊ทน์ ์œผ๋กœ ๋ฐ˜๋ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ„์†ํ•ด์„œ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ(๊ทธ๋ฆฌ๊ณ  #524์™€ ๊ฐ™์€ ํ•ญ๋ชฉ์„ ๊ตฌํ˜„ํ•˜๋ฉด) ํƒญ ์ปจํŠธ๋กค ๋””์ž์ธ์ด ์—…๋ฐ์ดํŠธ๋œ ์ปจํŠธ๋กค๊ณผ ๋” ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ํƒญ ๋‹ซ๊ธฐ ๋ฒ„ํŠผ์ด Edge UWP์™€ ๊ฐ™์ด ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ํฌ๋งํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๋ฒ„ํŠผ์€ ํ˜„์žฌ ์„ ํƒ๋œ ํƒญ์ด๋‚˜ ํƒญ ๋งˆ์šฐ์Šค ํ˜ธ๋ฒ„์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋‹จ๊ธฐ์ ์œผ๋กœ๋Š” ํ„ฐ๋ฏธ๋„์ด ํ•„์š”๋กœ ํ•˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์ ์ ˆํ•œ ๊ฒฝ์šฐ API ํ‘œ๋ฉด์„ ๋‹ค๋“ฌ๋Š” ๋ฐ ์ง‘์ค‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. v1์˜ ๊ฒฝ์šฐ Persistent๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธด ํ•˜์ง€๋งŒ, ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์ข‹์€ ์•„์ด๋””์–ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์›๋ž˜ ํ˜ธ๋ฒ„ ๋™์ž‘๋„ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ปจํŠธ๋กค์˜ ๋‹ค์Œ ๋ฒ„์ „์—์„œ ์žฌํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์งˆ๋ฌธ(์˜ˆ: x-on-hover, ํƒญ ๋ฐฐ์น˜ ๋“ฑ)์„ ์ถ”์ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

WinUI ํŒ€: @stmoy ๋ถ„๋ช…ํžˆ Windows ํ„ฐ๋ฏธ๋„ ํŒ€์€ ํƒญ ์ปจํŠธ๋กค์˜ ๋ฐฐ๊ฒฝ์œผ๋กœ ์•„ํฌ๋ฆด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(microsoft/terminal#1375 ์ฐธ์กฐ). ํ„ฐ๋ฏธ๋„ ํŒ€์€ ์•„ํ‚คํ…์ฒ˜ ์ œํ•œ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด WinUI ํŒ€์ด ๋„์šธ ์ˆ˜ ์žˆ๋Š” ์ผ์ž…๋‹ˆ๊นŒ? Edge UWP์—์„œ์™€ ๊ฐ™์ด ํƒญ ์ปจํŠธ๋กค์— ๋Œ€ํ•œ ์•„ํฌ๋ฆด ๋ฐฐ๊ฒฝ์˜ ํŒฌ์ด ๊ฝค ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ํ„ฐ๋ฏธ๋„ ํŒ€๊ณผ ์ ๊ทน์ ์œผ๋กœ ํ˜‘๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์ด ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” Tabs๊ฐ€ ์•„๋‹Œ Xaml Islands์˜ ์•Œ๋ ค์ง„ ์ œํ•œ ์‚ฌํ•ญ์˜ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ์•ฑ์ด TabControl.Background๋ฅผ ์•„ํฌ๋ฆด ๋ธŒ๋Ÿฌ์‹œ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ ๋น„ ํ„ฐ๋ฏธ๋„ ์•ฑ์€ ์•„ํฌ๋ฆด ๋ฐฐ๊ฒฝ์„ "์„ ํƒ" ๊ธฐ๋Šฅ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ณด๋ผ์ƒ‰์ด ํฌ์ธํŠธ ์ปฌ๋Ÿฌ์ธ๊ฐ€์š”?

์˜ˆ - ๋‚ด ๋””์ž์ธ์„ ๊ณต์‹ ๋””์ž์ธ ์ปดํฌ์ง€์…˜๊ณผ ํ˜ผ๋™ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์˜ค๋ฒ„ํ”Œ๋กœ ์Šคํฌ๋ฆฐ์ƒท์˜ ๋ชฉ์ ์€ ๋ฒ”ํผ๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๋‚˜๋Š” ๋‹จ์ง€ ๋‚ด๊ฐ€ ๊ทธ๋ฆผ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฝ๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๋ฟ์ž…๋‹ˆ๋‹ค.

์˜ˆ, ์™ผ์ชฝ ๋ฐ ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์˜ ๋ชจ์–‘๊ณผ ํƒญ์ด ์ž˜๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

ํƒญ์˜ ๋ชจ์„œ๋ฆฌ ๋ฐ˜๊ฒฝ์€ ์–ผ๋งˆ์ž…๋‹ˆ๊นŒ?

4 epx - ์•ˆ๋‚ด๊ฐ€ 2epx๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์„ ํƒํ•œ ํ‘œ์‹œ๊ธฐ์˜ 4epx ๋†’์ด๋Š” 4๋กœ ๋” ์ž˜ ๋ณด์ž…๋‹ˆ๋‹ค.

ํƒญ์˜ ๋†’์ด๋Š” ์–ผ๋งˆ์ž…๋‹ˆ๊นŒ?

40epx

์–ด๋–ค ๊ธ€๊ผด ํฌ๊ธฐ๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?

ํƒญ ์ œ๋ชฉ ํ…์ŠคํŠธ์˜ ๊ฒฝ์šฐ 14, MDL2 ์•„์ด์ฝ˜์˜ ๊ฒฝ์šฐ 16

image

Edge Canary์—๋Š” New tab-loading animation - edge://flags#new -tab-loading-animation์ด๋ผ๋Š” ํ”Œ๋ž˜๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์–‘์˜ ์ผ๋ถ€์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ…Œ๋งˆ ๋ฐ/๋˜๋Š” ์•”์‹œ์  ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ํƒญ์ถ”๊ฐ€์• ๋‹ˆ๋ฉ”์ด์…˜
  • TabRemove์• ๋‹ˆ๋ฉ”์ด์…˜
  • TabSwitchTo์• ๋‹ˆ๋ฉ”์ด์…˜
  • ์• ๋‹ˆ๋ฉ”์ด์…˜์—์„œ ํƒญ ์ „ํ™˜
  • TabSelectedSwitchToAnimation
  • TabSelectedSwitchFromAnimation
  • TabDragOut์• ๋‹ˆ๋ฉ”์ด์…˜
  • ํƒญ ๋ฐฐ์น˜ ์• ๋‹ˆ๋ฉ”์ด์…˜

@stmoy

์šฐ๋ฆฌ๋Š” ํ„ฐ๋ฏธ๋„ ํŒ€๊ณผ ์ ๊ทน์ ์œผ๋กœ ํ˜‘๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์ด ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” Tabs๊ฐ€ ์•„๋‹Œ Xaml Islands์˜ ์•Œ๋ ค์ง„ ์ œํ•œ ์‚ฌํ•ญ์˜ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

Xaml Island์˜ ํ–ฅํ›„ ๋ฒ„์ „์—์„œ ์ด ์ œํ•œ ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด Windows ํ„ฐ๋ฏธ๋„ ์•ฑ์—์„œ ๋ฐฐ๊ฒฝ ์•„ํฌ๋ฆด์— ๋Œ€ํ•œ ๊ฐ•ํ•œ ์—ด๋ง์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/microsoft/terminal/issues/1375#issuecomment -504625390, ํŠนํžˆ ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ์˜ ๋งˆ์ง€๋ง‰ ์ด๋ฏธ์ง€(์ œ๋ชฉ ํ‘œ์‹œ์ค„์— ๋ฐฐ๊ฒฝ ์•„ํฌ๋ฆด ํฌํ•จ)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ๋˜ํ•œ ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ์ด ๐Ÿ˜‰๋ฅผ ๋ฐ›์€ ๋งŽ์€ ์ฐฌ์„ฑํ‘œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”. ์—ฌ๊ธฐ์— ๋งŽ์€ ์ฐฌ์„ฑํ‘œ๊ฐ€ ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ๊ฒŒ์‹œ๋ฌผ: https://github.com/microsoft/terminal/issues/1375#issuecomment -504644293

ํƒญ UI ๋””์ž์ธ์— ๋Œ€ํ•ด ๋” ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ๋งํ•˜๋ฉด Edge UWP ํƒญ์ด Edge Chromium ํƒญ ๋ชจ์–‘๋ณด๋‹ค ์„ ํ˜ธ๋˜๋Š” ์‚ฌ์šฉ์ž ์˜๊ฒฌ์— ๋Œ€ํ•œ ์ง€์ง€์ ์ธ ๋ฐ˜์‘๋„ ํ™•์ธํ•˜์„ธ์š”. https://github.com/microsoft/terminal/issues/1375#issuecomment -504622788 ๋ฐ ๋ฐ”๋กœ ์•„๋ž˜์— ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

Edge Chromium ํƒญ์ด (ํ˜„๋Œ€) Windows ํƒญ์˜ ๋ฏธ๋ž˜ ๋ชจ์Šต์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ผ๋ฉด ์ด๋Ÿฌํ•œ ์••๋„์ ์ธ ์‚ฌ์šฉ์ž ๋ฐ˜์‘์€ Edge Chromium๊ณผ WinUI ๋ชจ๋‘์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํƒญ์˜ ๋ชจ์–‘์„ ์žฌ๊ณ ํ•ด์•ผ ํ•˜๋Š” ์ด์œ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋˜ํ•œ ์—ฌ๊ธฐ์— @chigy ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ Windows ํ„ฐ๋ฏธ๋„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ํ•ด๋‹น ํƒญ UI ๋ฐ˜์‘์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

ํŽธ์ง‘: ๋˜ํ•œ Windows Terminal ํŒ€์ด ์ด ๋ฌธ์ œ๋ฅผ "๊ณ ์น  ์ˆ˜ ์—†์„ ๊ฒƒ"์ด๋ผ๊ณ  ์žฌํ™•์ธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ฃผ์ œ์— ๋Œ€ํ•ด @marb2000 ์˜ ์ฃผ์˜๋ฅผ ํ™˜๊ธฐ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. WinUI ํŒ€์€ Windows ํ„ฐ๋ฏธ๋„์—์„œ ์•„ํฌ๋ฆด ์ œ๋ชฉ ํ‘œ์‹œ์ค„(๋งค์šฐ ์š”์ฒญ๋จ!)์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์„ ์–ด๋–ป๊ฒŒ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? @stmoy

@marb2000 @stmoy ์•„๋ž˜ ์งˆ๋ฌธ์— ๋Œ“๊ธ€์„ ๋‹ฌ์•„์ฃผ์„ธ์š”.

๋˜ํ•œ Windows ํ„ฐ๋ฏธ๋„ ํŒ€์ด ์ด ๋ฌธ์ œ[(ํ„ฐ๋ฏธ๋„์˜ ์•„ํฌ๋ฆด ์ œ๋ชฉ ํ‘œ์‹œ์ค„)]๋ฅผ "๊ณ ์น  ์ˆ˜ ์—†์Œ"์„ ์žฌํ™•์ธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ฃผ์ œ์— ๋Œ€ํ•ด @marb2000 ์˜ ์ฃผ์˜๋ฅผ ํ™˜๊ธฐ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. WinUI ํŒ€์€ Windows ํ„ฐ๋ฏธ๋„์—์„œ ์•„ํฌ๋ฆด ์ œ๋ชฉ ํ‘œ์‹œ์ค„(๋งค์šฐ ์š”์ฒญ๋จ!)์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์„ ์–ด๋–ป๊ฒŒ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

@jjjjjjjjjjjjjjjjjjjjj ๋„˜ ๋„˜ ๋„˜๋„˜ ๊ฐ์‚ฌ ํ•ด

์ตœ๊ทผ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ฝœ์—์„œ ์—ฌ๋Ÿฌ๋ถ„ ์ค‘ ํ•œ ๋ช…์—๊ฒŒ ํ•‘์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜
Xaml Islands(Windows ํ„ฐ๋ฏธ๋„)์˜ ๊ธฐ์ˆ  ์•„ํฌ๋ฆด ์ œ๋ชฉ ํ‘œ์‹œ์ค„ ์ง€์›์— ๋Œ€ํ•ด @stmoy ๊ฐ€ ์ด๋ฏธ ๋ถ€๋ถ„์ ์œผ๋กœ ๋‹ต๋ณ€ํ•œ ์œ„์˜ ๋‚ด ๊ฒŒ์‹œ๋ฌผ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋‚ด ๊ฒŒ์‹œ๋ฌผ๊ณผ ์œ„์˜ ๋‹ต๋ณ€์—์„œ ๊ฐ€์ ธ์˜จ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

WinUI ํŒ€์˜ ๊ฒฝ์šฐ: ๋ถ„๋ช…ํžˆ Windows Terminal ํŒ€์€ ํƒญ ์ปจํŠธ๋กค์˜ ๋ฐฐ๊ฒฝ์œผ๋กœ ์•„ํฌ๋ฆด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(microsoft/terminal#1375 ์ฐธ์กฐ). ํ„ฐ๋ฏธ๋„ ํŒ€์€ ์•„ํ‚คํ…์ฒ˜ ์ œํ•œ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ์ฃผ์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด WinUI ํŒ€์ด ๋„์šธ ์ˆ˜ ์žˆ๋Š” ์ผ์ž…๋‹ˆ๊นŒ? Edge UWP์—์„œ์™€ ๊ฐ™์ด ํƒญ ์ปจํŠธ๋กค์— ๋Œ€ํ•œ ์•„ํฌ๋ฆด ๋ฐฐ๊ฒฝ์˜ ํŒฌ์ด ๊ฝค ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@stmoy ์˜ ๋‹ต์žฅ:

์šฐ๋ฆฌ๋Š” ํ„ฐ๋ฏธ๋„ ํŒ€๊ณผ ์ ๊ทน์ ์œผ๋กœ ํ˜‘๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์ด ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” Tabs๊ฐ€ ์•„๋‹Œ Xaml Islands์˜ ์•Œ๋ ค์ง„ ์ œํ•œ ์‚ฌํ•ญ์˜ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ์•ฑ์ด TabControl.Background๋ฅผ ์•„ํฌ๋ฆด ๋ธŒ๋Ÿฌ์‹œ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ ๋น„ ํ„ฐ๋ฏธ๋„ ์•ฑ์€ ์•„ํฌ๋ฆด ๋ฐฐ๊ฒฝ์„ "์„ ํƒ" ๊ธฐ๋Šฅ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์งˆ๋ฌธ:

๋˜ํ•œ Windows ํ„ฐ๋ฏธ๋„ ํŒ€์ด ์ด ๋ฌธ์ œ[(ํ„ฐ๋ฏธ๋„์˜ ์•„ํฌ๋ฆด ์ œ๋ชฉ ํ‘œ์‹œ์ค„)]๋ฅผ "๊ณ ์น  ์ˆ˜ ์—†์Œ"์„ ์žฌํ™•์ธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ฃผ์ œ์— ๋Œ€ํ•ด @marb2000 ์˜ ์ฃผ์˜๋ฅผ ํ™˜๊ธฐ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. WinUI ํŒ€์€ Windows ํ„ฐ๋ฏธ๋„์—์„œ ์•„ํฌ๋ฆด ์ œ๋ชฉ ํ‘œ์‹œ์ค„(๋งค์šฐ ์š”์ฒญ๋จ!)์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์„ ์–ด๋–ป๊ฒŒ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰