Terminal: ๊ธฐ๋Šฅ ์š”์ฒญ: ๊ธฐ์กด ์ฝ˜์†”๊ณผ ๊ฐ™์€ ํ‘œ์ค€ ๋ถˆํˆฌ๋ช…๋„ ์˜ต์…˜.

์— ๋งŒ๋“  2019๋…„ 05์›” 09์ผ  ยท  63์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: microsoft/terminal

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

Area-User Interface Issue-Feature Product-Terminal

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

@TCB13 ์•„์‹œ๋‹ค์‹œํ”ผ ์šฐ๋ฆฌ๋Š” ๋ชจ๋‘ ์‚ฌ๋ฌด์‹ค์— ์•‰์•„ ๋ฐ›์€ ํŽธ์ง€ํ•จ, ๋ถ„๋ฅ˜ ๋Œ€๊ธฐ์—ด, github ๋ฌธ์ œ ๋ชฉ๋ก์„ ๋ณด๊ณ  ์žˆ๋Š” ์‹ค์ œ ์‚ฌ๋žŒ๋“ค์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ์ฝ๊ณ  ์žˆ์œผ๋ฉฐ, ๊ทธ ๋ฌธ์ œ์™€ ๊ทธ ๋ฌธ์ œ์—์„œ ์‚ฌ๋žŒ๋“ค์ด ๋งํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด _๋Š๋ผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๊ผฌ๋Š” ๋ง์€ ์‚ผ๊ฐ€ํ•ด ์ฃผ์„ธ์š”.

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

์ง€๊ธˆ์€ ์ง€์›๋˜์ง€ ์•Š์ง€๋งŒ, ๋†“์น˜๊ณ  ์‹ถ์ง€ ์•Š์€ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ๋น„์ฃผ์–ผ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •ํ•˜๋ ค๋ฉด ์•ฝ๊ฐ„์˜ ์ž‘์—…์ด ํ•„์š”ํ•˜์ง€๋งŒ "๊ณ„ํš์—" ์žˆ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ์žˆ๋Š” #593๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‚˜๋Š” ๊ณ ์ „์ ์ธ ํˆฌ๋ช…๋„๋ฅผ ์ข‹์•„ํ•˜์ง€๋งŒ ์ €์—๊ฒŒ ํ•„์ˆ˜ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜ ์ธ ์•„ํฌ๋ฆด์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. :)

์ด๊ฒƒ์— +1!

๋ถˆํ•„์š”ํ•œ ์†Œ์Œ์„ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๋ฌธ์ œ๋ฅผ "+1"ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์—ฌ๊ธฐ์— ์™„๋ฒฝํ•˜๊ฒŒ ์ข‹์€ +1 ๋ฒ„ํŠผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
image

@zadjii-msft with microsoft "์™„๋ฒฝํ•˜๊ฒŒ ์ข‹์€ +1 ๋ฒ„ํŠผ" ๊ฐ™์€ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค. ์†Œ์Œ์„ ๋‚ด๋”๋ผ๋„ ์•„๋ฌด๋„ ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ฑฐ๋‚˜ ๋“ฃ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Microsoft ์ œํ’ˆ์„ ์‚ฌ์šฉํ•ด ๋ณธ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ๋ˆ„๊ตฌ๋‚˜ ์ด ์‚ฌ์‹ค์„ ์•Œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์š”์ ์€ ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

@TCB13 ์•„์‹œ๋‹ค์‹œํ”ผ ์šฐ๋ฆฌ๋Š” ๋ชจ๋‘ ์‚ฌ๋ฌด์‹ค์— ์•‰์•„ ๋ฐ›์€ ํŽธ์ง€ํ•จ, ๋ถ„๋ฅ˜ ๋Œ€๊ธฐ์—ด, github ๋ฌธ์ œ ๋ชฉ๋ก์„ ๋ณด๊ณ  ์žˆ๋Š” ์‹ค์ œ ์‚ฌ๋žŒ๋“ค์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ์ฝ๊ณ  ์žˆ์œผ๋ฉฐ, ๊ทธ ๋ฌธ์ œ์™€ ๊ทธ ๋ฌธ์ œ์—์„œ ์‚ฌ๋žŒ๋“ค์ด ๋งํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด _๋Š๋ผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„๊ผฌ๋Š” ๋ง์€ ์‚ผ๊ฐ€ํ•ด ์ฃผ์„ธ์š”.

@DHowett-MSFT @zadjii-msft

๋ถˆํˆฌ๋ช…๋„ ๋Œ€์‹  ์•„ํฌ๋ฆด์ด ํฌํ•จ๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์‹ค์ œ๋กœ ์•„๋ฌด๋„์ด ํ„ฐ๋ฏธ๋„์˜ ์œ ์šฉ์„ฑ์„ ์‹ค์ œ๋กœ ๊ณ ๋ คํ•˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ PM์ด "์˜ค ํˆฌ๋ช…ํ•œ ๊ฒƒ์ด ๋ฉ‹์ ธ ๋ณด์ž…๋‹ˆ๋‹ค. ๋” ์‹œ์›ํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ํ๋ฆผ ํšจ๊ณผ๋ฅผ ๋”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!"๋ผ๊ณ  ๋งํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ„ฐ๋ฏธ๋„ ์•ฑ/์ฐฝ์€ ๋ณด๊ธฐ์— ๋ณด๊ธฐ์— ์ผ๋ฐ˜์ ์œผ๋กœ ํˆฌ๋ช…ํ•˜์ง€ ์•Š๊ณ  ์ฐฝ ๋’ค์— ์žˆ๋Š” ๋‹ค๋ฅธ ํ•ญ๋ชฉ์„ ๋ณผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํˆฌ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์˜ํ•˜๋Š” ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

ํšŒ์‚ฌ์˜ ๋‹ค๋ฅธ ์‹ค์ œ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋‚ด๊ฐ€ ๋‹ค๋ฅธ ์˜๊ฒฌ์—์„œ ์™œ ๊ทธ๋ ‡๊ฒŒ ๊ณต๊ฒฉ์ ์ธ์ง€ ๋ฌผ์–ด๋ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. :)

@TCB13 Command ํ„ฐ๋ฏธ๋„์— Acrylic์„ ์ถ”๊ฐ€ํ•ด ๋‹ฌ๋ผ๋Š” ๋ชฉ์†Œ๋ฆฌ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ ๋‹น์‹œ์—๋Š” ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋กœ ๋ถˆ๊ฐ€๋Šฅํ–ˆ์ง€๋งŒ ์ƒˆ๋กœ์šด ํ„ฐ๋ฏธ๋„์—์„œ๋Š” ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด ์ƒˆ ๋ฒ„์ „์˜ ๋ฌธ์ œ๋Š” Opacity๊ฐ€ ์ด๊ฒƒ์ด ์‚ฌ์šฉ ์ค‘์ธ ์ƒˆ Windowing API๋กœ ์ฆ‰์‹œ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š๊ณ  ํŒ€์ด ์ธ์ง€ํ•˜๊ณ  ์žˆ๊ณ  ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ด๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค.

๋‹น์‹ ์ด ๊ฐœ์ธ์ ์œผ๋กœ ์›ํ•˜๊ฑฐ๋‚˜ ํ•„์š”๋กœ ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ ‡๊ฒŒ ๋ฌด์‹œํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋งค์šฐ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ฏธ ๋งํ•œ ๊ฒƒ ์™ธ์—๋„ ์ดˆ์ ์„ ๋งž์ถœ ๋•Œ ์ฐฝ์„ ์•„ํฌ๋ฆด๋กœ ๋งŒ๋“ค๊ณ  ์ดˆ์ ์ด ์—†์„ ๋•Œ ํˆฌ๋ช…ํ•˜๊ฒŒ ํ•˜๋Š” ๊ธฐ๋Šฅ์€ ์ „ํ™˜์„ ๋œ ๊ฑฐ์Šฌ๋ฆฌ๊ฒŒ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋™์˜ํ–ˆ๋‹ค. ์•ฝ๊ฐ„ ํˆฌ๋ช…๋„๊ฐ€ ์žˆ๋Š” ๋งค์šฐ ์–ด๋‘์šด ๋ฐฐ๊ฒฝ์„ ์ข‹์•„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ์ธ์ ์œผ๋กœ ์ผ๋ฐ˜ ๋ถˆํˆฌ๋ช…๋„ ์„ค์ •์„ ์›ํ•ฉ๋‹ˆ๋‹ค. ์•„ํฌ๋ฆด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ์„ ๋•Œ ๋ฐฐ๊ฒฝ์ด ๋„ˆ๋ฌด ๋ฐ์•„์„œ ๋‚ด ์ทจํ–ฅ์— ๋งž์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํกํ˜ˆ๊ท€ ๐Ÿคทโ€โ™‚ .

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

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

์‚ฌ์‹ค์€ ๊ณ ์ „์ ์ธ ํˆฌ๋ช…๋„๊ฐ€ ์—†์„ ๋•Œ ์ฝ˜์†”์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. :) ์ €๋ฅผ ์œ„ํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. :)

์ด๊ฒƒ์€ ์ด ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ์ผ๋ จ์˜ ๊ฒŒ์‹œ๋ฌผ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.


ํด๋ฆญ ํ•ด์ฃผ์„ธ์š”

> ๊ฐœ์ธ์ ์œผ๋กœ ์›ํ•˜๊ฑฐ๋‚˜ ํ•„์š”๋กœ ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ๊ณ  ํ•ด์„œ ๋„ˆ๋ฌด ๋ฌด์‹œํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ๋Œ€๋‹ค์ˆ˜ ์•ฑ ์‚ฌ์šฉ์ž์˜ ์ผ๋ฐ˜์ ์ธ ๊ธฐ๋Œ€์™€ ๋™๋–จ์–ด์ ธ ๋ณด์ผ ๋•Œ ์—ด์ •์ ์ธ ๋ฐ˜์‘์„ ์–ป์Šต๋‹ˆ๋‹ค. ํˆฌ๋ช…์„ฑ์€ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ์‚ฌ๋žŒ์ด ํ•œ ์‚ฌ๋žŒ์„ ๊ธฐ์˜๊ฒŒ ํ•˜๋ผ๊ณ  ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์••๋ ฅ์„ ๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋‹น์‹ ์˜ ๋งˆ์ง€๋ง‰ ์ง„์ˆ ์ด ์•”์‹œํ•˜๋“ฏ์ด, ์–ด๋–ค ์ด์œ ๋กœ; ์ž์œ ๋กญ๊ฒŒ ํŽธ์ง‘ํ•˜์‹ญ์‹œ์˜ค. TCB13์ด ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๋‚˜ ๊ฒฝ์šฐ์— ๋ฌด๋ก€ํ•˜๊ฑฐ๋‚˜ ๊ณต๊ฒฉ์ ์ด์—ˆ์Šต๋‹ˆ๊นŒ? https://github.com/microsoft/terminal/issues/603#issuecomment-508031247 --- ๋˜ํ•œ, silverqx, https://github.com/microsoft/terminal/issues/603#issuecomment ์ฐธ์กฐ -546613996 https://github.com/microsoft/terminal/issues/603#issuecomment-507248317 ๊ทธ๋ฆฌ๊ณ  https://github.com/microsoft/terminal/tags?after=RS2-final ์ดํ›„ ์–ผ๋งˆ๋‚˜ ์ง€๋‚ฌ๋Š”์ง€ ์ฒซ ๊ณต๊ฐœ ์ถœ์‹œ. ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆด ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฒˆํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. https://github.com/microsoft/terminal/issues/603#issuecomment-507835880 --- https://github.com/microsoft/terminal/issues/603#issuecomment-529696036์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. , iCode์–ธ์  ๊ฐ€, ์•„ํฌ๋ฆด์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ํˆฌ๋ช…๋„๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ์•„ํฌ๋ฆด์ด ๋ณด์ด์ง€ ์•Š๊ฒŒํ•˜์‹ญ์‹œ์˜ค. cmd๊ฐ€ ๊ทธ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์€ ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค.


cmd์˜ ๊ฒฝ์šฐ 80% ~ 95% ๋ถˆํˆฌ๋ช…๋„, ์ฆ‰ ํˆฌ๋ช…๋„๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ฐ™์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•„ํฌ๋ฆด์€ ๋ฐ˜ํˆฌ๋ช…์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  Windows ์ปดํ“จํ„ฐ์—์„œ ๋น„ํ™œ์„ฑํ™”ํ•  ๋•Œ ํ…Œ์ŠคํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


์•ˆ๋ถ€ ๋ผํƒ€ํ† ์ด

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

image

์ด์ƒํ•˜๊ฒŒ๋„ ์ƒˆ ํƒญ ๋“œ๋กญ๋‹ค์šด์˜ MenuFlyout์ด ํˆฌ๋ช…ํ•ด์ง€์ง€ _์•Š์œผ๋ฏ€๋กœ_ ๋” ๋งŽ์€ ์งˆ๋ฌธ์ด ์ œ๊ธฐ๋ฉ๋‹ˆ๋‹ค.
image

์†”์งํžˆ _my_ ์˜๊ฒฌ์œผ๋กœ๋Š” ๊ฒฝํ—˜์ด ์•ฝ๊ฐ„ ๋‹ค๋“ฌ์–ด์ง€์ง€ ์•Š์€ ๋Š๋‚Œ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์‚ฌ๋žŒ๋“ค์ด ์ง„์ •์œผ๋กœ ์›ํ•˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด ๊ฑฐ์ ˆํ•˜์ง€๋Š” ์•Š๊ฒ ์ง€๋งŒ ๊ณ ํ’ˆ์งˆ์˜ ์ œํ’ˆ์„ ๋ฐฐ์†กํ•˜๊ณ  ์žˆ๋Š”์ง€๋„ ํ™•์ธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ _๋” ๋‚˜์€_ ์†”๋ฃจ์…˜์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๋ฐฑ๋กœ๊ทธ์— ๋‚จ๊ฒจ๋‘๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

์‚ฌ์‹ค ์ €๋Š” ๋น„ํด๋ผ์ด์–ธํŠธ ์˜์—ญ์ด ํˆฌ๋ช…ํ•œ ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด cmd๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ ์ž ์‹œ ๋™์•ˆ(RS5?):

image

์†”์งํžˆ _my_ ์˜๊ฒฌ์œผ๋กœ๋Š” ๊ฒฝํ—˜์ด ์•ฝ๊ฐ„ ๋‹ค๋“ฌ์–ด์ง€์ง€ ์•Š์€ ๋Š๋‚Œ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์‚ฌ๋žŒ๋“ค์ด ์ง„์ •์œผ๋กœ ์›ํ•˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด ๊ฑฐ์ ˆํ•˜์ง€๋Š” ์•Š๊ฒ ์ง€๋งŒ ๊ณ ํ’ˆ์งˆ์˜ ์ œํ’ˆ์„ ๋ฐฐ์†กํ•˜๊ณ  ์žˆ๋Š”์ง€๋„ ํ™•์ธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ _๋” ๋‚˜์€_ ์†”๋ฃจ์…˜์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๋ฐฑ๋กœ๊ทธ์— ๋‚จ๊ฒจ๋‘๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด ํšจ๊ณผ๋ฅผ ์•„์ฃผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์œ ์ผํ•œ ๋‹จ์ƒ‰ ์ฐฝ์€ ๋Œ€ํ™” ์ƒ์ž์™€ ๋“œ๋กญ๋‹ค์šด์ž…๋‹ˆ๋‹ค. ์ด์ œ ์†Œ์Šค์—์„œ ์ด๊ฒƒ์„ ๋นŒ๋“œํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.-/

์ˆ˜์ •์— ์—ฐ๊ฒฐํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์˜ˆ, ๋˜ํ•œ ๋ชจ๋“  ํˆฌ๋ช…ํ•œ ๊ฒƒ์ด ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜„

cmd๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์€ ์•„๋ž˜์— ์žˆ๋Š” ๋‚ด์šฉ์„ ์ฝ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค(๋ฌผ๋ก  ํˆฌ๋ช…๋„ ์ˆ˜์ค€์— ๋”ฐ๋ผ "์ข‹์Œ"์œผ๋กœ ํ‘œ์‹œ๋จ).

๋‚˜๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด gnome-terminal wrt ํˆฌ๋ช…๋„์˜ ๊ธฐ๋Šฅ์„ ๊ฐ€์ด๋“œ๋กœ ๋ณผ ๊ฒƒ์„ ๊ฐ•๋ ฅํžˆ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๋ถ€๋ถ„์„ ์œ„ํ•ด, ๋‚˜๋Š” ์•„ํฌ๋ฆด๊ณผ ๊ทธ ํ๋ฆฟํ•จ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ดˆ์ ์ด ๋งž์•˜๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ํˆฌ๋ช…ํ•˜๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”.

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

ํƒญ ๋ง‰๋Œ€๋ฅผ ํˆฌ๋ช…ํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์€ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋กค ๋ง‰๋Œ€๋„ ํฌํ•จํ•˜์—ฌ ์ „์ฒด ์ฐฝ์€ ํˆฌ๋ช…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
ํƒญ ํ‘œ์‹œ์ค„๊ณผ ์ƒํƒœ ํ‘œ์‹œ์ค„์— ๋Œ€ํ•œ ๊ฒƒ๋ณด๋‹ค ํ„ฐ๋ฏธ๋„ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ํˆฌ๋ช…๋„๊ฐ€ ์•ฝ๊ฐ„ ๋” ์žˆ๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋‚ซ์ง€๋งŒ(์˜ˆ: ์•ฝ 10%), ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋‚ฎ๊ณ  ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ชจ๋‹ฌ ๋Œ€ํ™” ์ƒ์ž๋Š” ๋ถˆํˆฌ๋ช…ํ•ด์•ผ ํ•˜๋ฉฐ ์•„๋ฌด๋„ ํˆฌ๋ช…ํ•œ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๐Ÿ™‚
ํ…์ŠคํŠธ์™€ ๋ฐฐ๊ฒฝ์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ํˆฌ๋ช…๋„๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์ด ์ด์ƒ์ ์ด๋ฉฐ ํ…์ŠคํŠธ๋Š” ์ฝ๊ธฐ ์‰ฝ๋„๋ก ๋ฐฐ๊ฒฝ๋ณด๋‹ค ์•ฝ๊ฐ„ ๋œ ํˆฌ๋ช…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ณด๊ธฐ ์ข‹๊ฒŒ ๋งŒ๋“œ๋Š”

์ด์ƒํ•˜๊ฒŒ๋„ ์ƒˆ ํƒญ ๋“œ๋กญ๋‹ค์šด์˜ MenuFlyout์ด ํˆฌ๋ช…ํ•ด์ง€์ง€ _์•Š์œผ๋ฏ€๋กœ_ ๋” ๋งŽ์€ ์งˆ๋ฌธ์ด ์ œ๊ธฐ๋ฉ๋‹ˆ๋‹ค.

๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์ด ๋“œ๋กญ๋‹ค์šด ๋˜๋Š” ํ”Œ๋ผ์ด์•„์›ƒ ๋ฉ”๋‰ด๋Š” ํˆฌ๋ช…ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ๋ถˆํˆฌ๋ช…ํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์ข‹์Šต๋‹ˆ๋‹ค.

์†”์งํžˆ _my_ ์˜๊ฒฌ์œผ๋กœ๋Š” ๊ฒฝํ—˜์ด ์•ฝ๊ฐ„ ๋‹ค๋“ฌ์–ด์ง€์ง€ ์•Š์€ ๋Š๋‚Œ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์‚ฌ๋žŒ๋“ค์ด ์ง„์ •์œผ๋กœ ์›ํ•˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด ๊ฑฐ์ ˆํ•˜์ง€๋Š” ์•Š๊ฒ ์ง€๋งŒ ๊ณ ํ’ˆ์งˆ์˜ ์ œํ’ˆ์„ ๋ฐฐ์†กํ•˜๊ณ  ์žˆ๋Š”์ง€๋„ ํ™•์ธํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ _๋” ๋‚˜์€_ ์†”๋ฃจ์…˜์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๋ฐฑ๋กœ๊ทธ์— ๋‚จ๊ฒจ๋‘๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

์•ฝ๊ฐ„์˜ ํ”Œ๋ ˆ์ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ณด๋ผ์ƒ‰ ๋ฐฐ๊ฒฝ์€ ํˆฌ๋ช…ํ•œ ๋ฐฐ๊ฒฝ์˜ ์ข‹์€ ์˜ˆ๊ฐ€ ์•„๋‹ˆ๋ฉฐ ๊ฒ€์€์ƒ‰ ๋ฐฐ๊ฒฝ๊ณผ ํ›จ์”ฌ ์ž˜ ์–ด์šธ๋ฆฝ๋‹ˆ๋‹ค.
๋ช‡ ๊ฐ€์ง€ ์˜ˆ 1 , 2 .

ํ„ฐ๋ฏธ๋„์— ๋Œ€ํ•ด ์ ์ ˆํ•˜๊ณ  ๊ท ํ˜• ์žกํžŒ ํˆฌ๋ช…๋„๋ฅผ ์„ค์ •ํ•˜๋ฉด ์ผ๋ถ€ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์›Œํฌํ”Œ๋กœ์—์„œ๋Š” ๊ธฐ๋ณธ ์ฐฝ์œผ๋กœ ์ „ํ™˜ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” 5-10%์˜ ๊ฒฝ์šฐ์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹ค์šฉ์ ์ธ ๋ฉด์—์„œ ์ข‹๊ณ  ๋ณด๊ธฐ์— ์ข‹๋‹ค๋Š” ๊ฒƒ์ด ๋ถ€๊ฐ€๊ฐ€์น˜์ž…๋‹ˆ๋‹ค. ๐Ÿ™‚

๋‹ค์Œ์€ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋งํฌ ์ด๋ฉฐ, ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ conemu์—์„œ ๊ตฌํ˜„๋˜๋Š”์ง€์ž…๋‹ˆ๋‹ค.

@zadjii-msft ๋‚ด ์ œ์•ˆ์—์„œ์™€ ๊ฐ™์ด ๊ตฌํ˜„๋œ๋‹ค๋ฉด ์‹คํ—˜์  ํˆฌ๋ช…์„ฑ์œผ๋กœ ์™„์ „ํžˆ ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ง‘์ค‘ - useAcrylic
unfocused - ํˆฌ๋ช…๋„ ์‚ฌ์šฉ

https://github.com/microsoft/terminal/issues/4413

์™ผ์ชฝ๋ถ€ํ„ฐ
ํˆฌ๋ช…๋„๊ฐ€ ์žˆ๋Š” ํ‘œ์ค€ CMD, ์ง‘์ค‘ ํ„ฐ๋ฏธ๋„, ๋ฐฐ๊ฒฝ ํ„ฐ๋ฏธ๋„
image

ํˆฌ๋ช… ๋ฐฐ๊ฒฝ ๋ฐ ํ…์ŠคํŠธ(foregorund)์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
๋‚˜๋Š” ํˆฌ๋ช…ํ•œ ํ…์ŠคํŠธ๋ฅผ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฝ๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‚˜๋Š” ํˆฌ๋ช…ํ•œ ๋ฐฐ๊ฒฝ์„ ์›ํ•œ๋‹ค

@jadjii-msft @cinnamon-msft

Aero Peek์ฒ˜๋Ÿผ ์ƒˆ ํƒญ + ๋ฒ„ํŠผ ๋˜๋Š” ์ตœ์†Œํ™” - ๋ฒ„ํŠผ ๊ทผ์ฒ˜์— ์žˆ๋Š” TitleBar์˜ Peek ๋ฒ„ํŠผ์„ ์›ํ•ฉ๋‹ˆ๋‹ค.

์ž‘๊ณก ์ž‘์—…์„ ๋‹ค์‹œ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด TitleBar์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด ๋ณด์‹ญ์‹œ์˜ค. ๊ทธ ์œ„๋กœ ๋งˆ์šฐ์Šค๋ฅผ ๊ฐ€์ ธ๊ฐ€๋ฉด ํ•ญ์ƒ ํˆฌ๋ช…ํ•˜๊ฒŒ ์œ ์ง€๋˜์ง€ ์•Š๊ณ  ๋’ค์— ์žˆ๋Š” ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

__์ƒ๋Œ€์ ์œผ๋กœ ๊ด€๋ จ๋จ__

์ตœ๋Œ€ํ™”๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๋ชจ๋“  ์•ฑ์˜ TitleBar์— ์ „์ฒด ํ™”๋ฉด ๋ฒ„ํŠผ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ(ํ„ฐ๋ฏธ๋„์—์„œ๋„ ๊ฐ€๋Šฅ)! Windowing ์‹œ์Šคํ…œ ์ž์ฒด์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ Peek ๋„ IMHO ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@Nirmal4G ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ์„ #5426์œผ๋กœ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๋‘ ๋ฒˆ์งธ ์š”์ฒญ์— ๋Œ€ํ•ด ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์€ ์—†๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” _๋ชจ๋“ _ Windows ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์ฐฝ ์„ค์ •์— ๋Œ€ํ•œ ์ƒ๋‹นํžˆ ๊ด‘๋ฒ”์œ„ํ•œ ๋ณ€๊ฒฝ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. Microsoft/PowerToys ์— ์ž˜ ๋งž๋Š” ์š”์ฒญ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๋ชฉ ํ‘œ์‹œ์ค„ ์บก์…˜ ๋ฒ„ํŠผ์„ ์ˆ˜์ •ํ•˜์—ฌ ์ž‘์—…ํ•œ ์˜ค๋ฆฌ์ง€๋„ ํŒŒ์›Œํ† ์ด ์ค‘ ํ•˜๋‚˜์ธ IIRC
image

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

์ด ๊ธฐ๋Šฅ๋„ ์–ด๋Š ์‹œ์ ์—์„œ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค. ๊ฐ์‚ฌ ํ•ด์š”.

ํ”„๋กœ์ ํŠธ ํŽ˜์ด์ง€: https://github.com/JasonStein/Notepads

--ํŽธ์ง‘ํ•˜๋‹ค:
ํ”„๋กœ์ ํŠธ๋ฅผ ํ›‘์–ด๋ณด๋ฉด์„œ ๊ทธ๋Š” ์ด ๋ชจ๋“  ๊ฒƒ์„ ์œ„ํ•ด ์ž์‹ ๋งŒ์˜ ์•„ํฌ๋ฆด ๋ธŒ๋Ÿฌ์‹œ๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/JasonStein/Notepads/blob/58530f19dd0173bab13e40c9511e5277e42c4129/src/Notepads/Brushes/HostBackdropAcrylicBrush.cs

์ดˆ์ ์ด ๋งž์ง€ ์•Š์„ ๋•Œ ์•„ํฌ๋ฆด์„ ์œ ์ง€ํ• 

๋„ค... ํ„ฐ๋ฏธ๋„์˜ ํˆฌ๋ช…๋„/์•„ํฌ๋ฆด์€ ์•„๋งˆ๋„ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ญ์ƒ ๊ฑฐ๊ธฐ์— ์žˆ์„ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•˜๋Š” ์ผ์ข…์˜ ๋ˆˆ์š”๊ธฐ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์•„๋ฌด๋„ ๊ทธ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๊ฒƒ์ด ์ง‘์ค‘๋˜์–ด ์žˆ๋Š” ๋™์•ˆ ๊ทธ๊ฒƒ์„ ๊ฐ–๋Š” ๊ฒƒ์€ ๊ทธ ์ ์—์„œ ๊ทธ๋ ‡๊ฒŒ ๋งŽ์ด ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ํ„ฐ๋ฏธ๋„ ์‚ฌ์šฉ์ž๋Š” ๊ณ ๊ธ‰ ์‚ฌ์šฉ์ž์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์œผ๋ฉฐ ์‹ค์ œ๋กœ JSON์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ํŽธ์ง‘ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ๋“  ๋ฐฐํ„ฐ๋ฆฌ ์˜ํ–ฅ์„ ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ์„ ํƒ ์‚ฌํ•ญ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@๋ฏธ๋ž˜์˜ ๋‚˜:

  • https://github.com/JasonStein/Notepads/blob/58530f19dd0173bab13e40c9511e5277e42c4129/src/Notepads/Brushes/HostBackdropAcrylicBrush.cs

    • ์ด, ์ด๊ฒƒ์€ C#์ด๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„์ง€ ํ™•์‹ ์ด ์„œ์ง€ ์•Š๋Š” Win2D๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    • https://github.com/microsoft/Win2D/blob/master/winrt/docsrc/CanvasDevice.xml / https://microsoft.github.io/Win2D/html/M_Microsoft_Graphics_Canvas_CanvasDevice_GetSharedDevice.htm

  • ๊ทธ๋Ÿฌ๋‚˜ https://docs.microsoft.com/en-us/uwp/api/windows.ui.composition.compositor.createhostbackdropbrush?view=winrt-18362๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ์ด๊ฒƒ์€ ์œ ๋งํ•ด ๋ณด์ธ๋‹ค

  • https://stackoverflow.com/questions/43208841/how-to-use-acrylic-accent-createhostbackdropbrush-in-windows-10-creators-upd/44576160
  • ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
            auto rootVisual = winrt::Windows::UI::Xaml::Hosting::ElementCompositionPreview::GetElementVisual(RootGrid());
            auto compositor = rootVisual.Compositor();
            auto rootSprite = compositor.CreateSpriteVisual();
            rootSprite.Size(winrt::Windows::Foundation::Size(
                ::base::saturated_cast<float>(RootGrid().ActualWidth()),
                ::base::saturated_cast<float>(RootGrid().ActualHeight())));

            auto b = rootVisual.Compositor().CreateHostBackdropBrush();

            rootSprite.Brush(b);
            winrt::Windows::UI::Xaml::Hosting::ElementCompositionPreview::SetElementChildVisual(RootGrid(), rootSprite);
  • ์•„๋‹ˆ, ์ด๊ฒƒ์œผ๋กœ๋„ ์‚ฌ์ „ ํ๋ฆฌ๊ฒŒ ์ฒ˜๋ฆฌ ๋œ ์ฝ˜ํ…์ธ ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.
    image

  • https://github.com/Microsoft/WindowsCompositionSamples/issues/202๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

  • ์ž‘๋…„์— ์ด๋ฏธ ์ˆ˜ํ–‰ํ•œ ์กฐ์‚ฌ์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. https://github.com/microsoft/terminal/issues/1753#issuecomment-508070516

๋‚˜๋Š” ์—ฌ๊ธฐ์—์„œ ์•„๋ฌด ๊ฒƒ๋„ ์•ฝ์†ํ•˜์ง€ ์•Š๊ณ  ์˜ค๋Š˜ ์•„์นจ์— ์—ด์–ด ๋†“์€ ํƒญ์˜ ๋ฉ”๋ชจ๋ฅผ ๋‚จ๊ฒจ ๋‘ก๋‹ˆ๋‹ค.

์ž ๊น, ๋‚ด๊ฐ€ ์ œ๋Œ€๋กœ ์ฝ์—ˆ์Šต๋‹ˆ๊นŒ? ๋ถ€๋ถ„์ ์œผ๋กœ ํˆฌ๋ช…ํ•œ ์ฐฝ์ด๋‚˜ ํ๋ฆผ์ด ์—†๋Š” ์•„ํฌ๋ฆด์€ ๋ณด์•ˆ ๋ฌธ์ œ๋กœ ์ธํ•ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ? ๋ญ๋ผ๊ณ  ์š”?

๋‚˜๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋™์•ˆ *nix ์ „์„ ์—์„œ ์‚ฌ์šฉ๋˜์–ด ์˜จ ํ„ฐ๋ฏธ๋„ ๋ฐ˜ํˆฌ๋ช…์„ฑ์„ ๊ฐ„์ ˆํžˆ ์›ํ•ฉ๋‹ˆ๋‹ค/ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. "์Šคํฌ๋ฆฐ ์„ธ์ด๋ฒ„ ๊ฒฝ๋กœ"๋กœ ์ด๋™ํ•˜์—ฌ ํŽ˜์ธํŒ…ํ•˜๋Š” ๋™์•ˆ ํ™”๋ฉด์„ ์บก์ฒ˜ํ•˜๊ณ  ์บก์ฒ˜๋ฅผ ์ฐฝ์˜ ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๋กœ ํŽ˜์ธํŒ…ํ•œ ๋‹ค์Œ ๊ทธ ์œ„์— ๋ถˆํˆฌ๋ช…๋„๋ฅผ ํŽ˜์ธํŒ…ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋‚ด ๋ง์€, ๋ฐ˜ํˆฌ๋ช… ์ฐฝ์ด ๊ณต๊ฒฉ์˜ ๋ฒกํ„ฐ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ์ง€... ์™„์ „ํžˆ ํˆฌ๋ช…ํ•œ ํ‚ค๋กœ๊ฑฐ๋ผ๋„ ์ฐฝ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง„์‹ฌ์œผ๋กœ ๊ถ๊ธˆํ•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹นํ™ฉํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๋ถ€๋ถ„ ํ˜ธ๊ธฐ์‹ฌ์ด ๋งŽ์Šต๋‹ˆ๋‹ค.

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

๊ทธ ์ดํ›„๋กœ ์„ธ์ƒ์€ ๋งŽ์ด ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค. UWP XAML(๋ฐ ์•„ํฌ๋ฆด)์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ UWP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด _์•„๋‹™๋‹ˆ๋‹ค_ ํ„ฐ๋ฏธ๋„๊ณผ ๊ฐ™์€ ์•ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ƒˆ๋กœ์šด ๋ชจ๋ธ์—์„œ๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋” ๋งŽ์€ ์—ฐ๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

AcrylicBrush์— ๋Œ€ํ•œ
Acrylic Brush์˜ ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ๋Š” ์‰˜์ด ์ด๋ฏธ ์ˆ˜ํ–‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ์‚ฌ์ „ ํ๋ฆฌ๊ฒŒ ์ฒ˜๋ฆฌ๋œ ๋ฐฐ๊ฒฝ์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. IF ํ•ด๋‹น ๋ฉ”์†Œ๋“œ๊ฐ€ ๋…ธ์ถœ๋˜๊ณ  ํ๋ ค์ง€์ง€ ์•Š์€ ๋ฐฐ๊ฒฝ์ด ์‚ฌ์ „ ํ๋ฆฌ๊ฒŒ ์ฒ˜๋ฆฌ๋œ ๋ฐฐ๊ฒฝ์œผ๋กœ ์ „๋‹ฌ๋˜๊ณ  IF ๋‚˜๋Š” ์—ฌ๊ธฐ์„œ ์™„์ „ํžˆ ๋ฒ—์–ด๋‚œ ๊ฒƒ์€ ์•„๋‹ˆ๋ฉฐ ๊ณต์žฅ์—์„œ ํ๋ฆผ ํšจ๊ณผ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์‹œ, ๋‚˜๋Š” ์—ฌ๊ธฐ์—์„œ 150% ํ‹€๋ฆด ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์œผ๋ฏ€๋กœ ์›ํ•˜๋Š” ๋Œ€๋กœ ๋ฐ›์•„๋“ค์ด์‹ญ์‹œ์˜ค.

์„ธ์ƒ์—, ์ด ๋…ผ์˜๋Š” 1๋…„์ด ๋„˜์—ˆ์ง€๋งŒ ํ•„์ˆ˜์ ์ธ Glass Transparency๋Š” ์•„์ง ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์œ ๋‹‰์Šค ํ„ฐ๋ฏธ๋„์˜ ํ‘œ์ค€์ž…๋‹ˆ๋‹ค.

@alxkvx ์ด ์Šค๋ ˆ๋“œ์—์„œ ๊ธด ์‹œ๊ฐ„ ๋™์•ˆ ๋…ผ์˜ํ–ˆ๋“ฏ์ด ์ด๊ฒƒ์€ ๊ธฐ์ˆ ์ ์œผ๋กœ ์–ด๋ ค์šด ๋ฌธ์ œ์ด๋ฏ€๋กœ ์•„์ง ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ์ด์œ ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ์˜ UI ์Šคํƒ์œผ๋กœ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๋Š” _๋ฐฉ๋ฒ•_์— ๋Œ€ํ•œ ์ œ์•ˆ์ด ์žˆ์œผ๋ฉด ๊ธฐ๊บผ์ด ๋“ฃ๊ฒ ์Šต๋‹ˆ๋‹ค.

@alxkvx ์ด ์Šค๋ ˆ๋“œ์—์„œ ๊ธด ์‹œ๊ฐ„ ๋™์•ˆ ๋…ผ์˜ํ–ˆ๋“ฏ์ด ์ด๊ฒƒ์€ ๊ธฐ์ˆ ์ ์œผ๋กœ ์–ด๋ ค์šด ๋ฌธ์ œ์ด๋ฏ€๋กœ ์•„์ง ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ์ด์œ ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ์˜ UI ์Šคํƒ์œผ๋กœ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๋Š” _๋ฐฉ๋ฒ•_์— ๋Œ€ํ•œ ์ œ์•ˆ์ด ์žˆ์œผ๋ฉด ๊ธฐ๊บผ์ด ๋“ฃ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ธ€์Ž„, ๋‚˜๋Š” ์‹ค์ œ๋กœ ๋ฌธ์ œ๋ฅผ ํŒŒํ—ค์น˜์ง€ ์•Š์•˜๊ณ  UI ์Šคํƒ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์ด์œ ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. WSL ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญ > ์†์„ฑ > ๋ถˆํˆฌ๋ช…๋„ ์„ค์ •์„ ํ•˜๋ฉด ์œ ๋ฆฌ ํˆฌ๋ช…๋„๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์ด๊ฒƒ์€ ํ•„์ˆ˜ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

ํ„ฐ๋ฏธ๋„์— ์ดˆ์ ์ด ๋งž์ง€ ์•Š์„ ๋•Œ ํ๋ฆฟํ•˜๊ณ  ๋ถˆํˆฌ๋ช…ํ•ด์ง€๋Š” ๊ฒƒ์€ ์–ด๋ฆฌ์„์€ ์ผ์ž…๋‹ˆ๋‹ค. ๋ˆ„๊ฐ€ ์ด๊ฒƒ์„ ์š”๊ตฌํ–ˆ์Šต๋‹ˆ๊นŒ? ๐Ÿคท ๊ณ„์† cmd์™€ powershell์„ ์‚ฌ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@alxkvx ์ด ์Šค๋ ˆ๋“œ์—์„œ ๊ธด ์‹œ๊ฐ„ ๋™์•ˆ ๋…ผ์˜ํ–ˆ๋“ฏ์ด ์ด๊ฒƒ์€ ๊ธฐ์ˆ ์ ์œผ๋กœ ์–ด๋ ค์šด ๋ฌธ์ œ์ด๋ฏ€๋กœ ์•„์ง ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ์ด์œ ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ์˜ UI ์Šคํƒ์œผ๋กœ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๋Š” _๋ฐฉ๋ฒ•_์— ๋Œ€ํ•œ ์ œ์•ˆ์ด ์žˆ์œผ๋ฉด ๊ธฐ๊บผ์ด ๋“ฃ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ธ€์Ž„, ๋‚˜๋Š” ์‹ค์ œ๋กœ ๋ฌธ์ œ๋ฅผ ํŒŒํ—ค์น˜์ง€ ์•Š์•˜๊ณ  UI ์Šคํƒ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์ด์œ ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. WSL ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญ > ์†์„ฑ > ๋ถˆํˆฌ๋ช…๋„ ์„ค์ •์„ ํ•˜๋ฉด ์œ ๋ฆฌ ํˆฌ๋ช…๋„๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์ด๊ฒƒ์€ ํ•„์ˆ˜ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” Windows ํ„ฐ๋ฏธ๋„์ด ๋‚ด์žฅ๋œ UI ํ”„๋ ˆ์ž„์›Œํฌ(UWP XAML)๊ฐ€ ๋‹จ์ˆœํžˆ win32 ๋˜๋Š” WPF ์•ฑ(์˜ˆ: wsl ํ„ฐ๋ฏธ๋„)๊ณผ ๊ฐ™์€ ์™„์ „ํ•œ ํˆฌ๋ช…๋„๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋„๊ตฌ๋Š” ์•„ํฌ๋ฆด์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํˆฌ๋ช…๋„๋ณด๋‹ค๋Š” ๋””์ž์ธ ์•ก์„ผํŠธ์— ๋” ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. UI ์Šคํƒ์—์„œ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ์œ„์˜ ์„ค๋ช…๊ณผ ๊ฐ™์€ ํ•ดํ‚ค ์†”๋ฃจ์…˜์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์ฝ˜์†”์ด ๋ Œ๋”๋ง๋˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ „์ฒด ์žฌ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค(์ ์–ด๋„ ๋‚ด ์ดํ•ด๋Š” Windows UI๊ฐ€ ๋‚ด ๊ฐœ๋ฐœ ๋ถ„์•ผ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค).

ํŽธ์ง‘: ์„ค๋ช…

@alxkvx ์ด ์Šค๋ ˆ๋“œ์—์„œ ๊ธด ์‹œ๊ฐ„ ๋™์•ˆ ๋…ผ์˜ํ–ˆ๋“ฏ์ด ์ด๊ฒƒ์€ ๊ธฐ์ˆ ์ ์œผ๋กœ ์–ด๋ ค์šด ๋ฌธ์ œ์ด๋ฏ€๋กœ ์•„์ง ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ์ด์œ ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ์˜ UI ์Šคํƒ์œผ๋กœ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๋Š” _๋ฐฉ๋ฒ•_์— ๋Œ€ํ•œ ์ œ์•ˆ์ด ์žˆ์œผ๋ฉด ๊ธฐ๊บผ์ด ๋“ฃ๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ธ€์Ž„, ๋‚˜๋Š” ์‹ค์ œ๋กœ ๋ฌธ์ œ๋ฅผ ํŒŒํ—ค์น˜์ง€ ์•Š์•˜๊ณ  UI ์Šคํƒ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์ด์œ ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. WSL ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ์œผ๋กœ ํด๋ฆญ > ์†์„ฑ > ๋ถˆํˆฌ๋ช…๋„ ์„ค์ •์„ ํ•˜๋ฉด ์œ ๋ฆฌ ํˆฌ๋ช…๋„๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์ด๊ฒƒ์€ ํ•„์ˆ˜ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” Windows ํ„ฐ๋ฏธ๋„์ด ๋‚ด์žฅ๋œ UI ํ”„๋ ˆ์ž„์›Œํฌ(XAML)๊ฐ€ ๋‹จ์ˆœํžˆ win32 ์•ฑ(์˜ˆ: wsl ํ„ฐ๋ฏธ๋„)๊ณผ ๊ฐ™์€ ์™„์ „ํ•œ ํˆฌ๋ช…๋„๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋„๊ตฌ๋Š” ์•„ํฌ๋ฆด์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํˆฌ๋ช…๋„๋ณด๋‹ค๋Š” ๋””์ž์ธ ์•ก์„ผํŠธ์— ๋” ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. UI ์Šคํƒ์—์„œ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ์œ„์˜ ์„ค๋ช…๊ณผ ๊ฐ™์€ ํ•ดํ‚ค ์†”๋ฃจ์…˜์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ์ฝ˜์†”์ด ๋ Œ๋”๋ง๋˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ „์ฒด ์žฌ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค(์ ์–ด๋„ ๋‚ด ์ดํ•ด๋Š” Windows UI๊ฐ€ ๋‚ด ๊ฐœ๋ฐœ ๋ถ„์•ผ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค).

Xaml์€ ํˆฌ๋ช…๋„๋ฅผ ์ง€์›ํ•˜์ง€๋งŒ UWP ์ฐฝ๊ณผ Xaml Islands๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ„ฐ๋ฏธ๋„์ด WinUI 3 ๋ฐ์Šคํฌํƒ‘์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๊ณ  HWND ์ž์ฒด๋ฅผ ํƒญํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ํ๋ฆฟํ•˜์ง€ ์•Š์€ ํˆฌ๋ช…๋„๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„ํฌ๋ฆด ์ž์ฒด๋Š” WinUI 3์—์„œ ์ง€์—ฐ๋ฉ๋‹ˆ๋‹ค. OS์—์„œ ์ถ”์ถœํ•˜๋Š” ๋™์•ˆ ๋‹ค์‹œ ์ž‘์—…ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ž ์‹œ๋งŒ์š”. ์˜คํ•ด๋ฅผ ํ’€๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ win32 ์•ฑ์ด๊ธฐ ๋•Œ๋ฌธ์— HWND์— ์ง์ ‘ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ๊ธฐ ์œ„ํ•ด XAML ๋ฐ ๊ตฌ์„ฑ ํŒ€๊ณผ ํ˜‘๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ดํ•ด(ํ˜„์žฌ)์—์„œ XAML Island๋Š” ํ•ญ์ƒ ๋ถˆํˆฌ๋ช…ํ•œ ๋ฐฐ๊ฒฝ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, HWND๊นŒ์ง€ ํˆฌ๋ช…ํ•œ XAML์˜ ํˆฌ๋ช…ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. WinUI 3๊ฐ€ ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด ์ด ๋ฌธ์ œ๋ฅผ ๋งˆ์ˆ ์ฒ˜๋Ÿผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ํ•ด๋‹น ํŒ€๊ณผ ๋” ๋…ผ์˜ํ•ด์•ผ ํ•  ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ ๊ทธ๋“ค์€ ์šฐ๋ฆฌ ์˜† ๋ณต๋„์—์„œ ์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์—(์ ์–ด๋„ ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ์‚ฌ๋ฌด์‹ค ๊ฑด๋ฌผ์—์„œ ์ผํ•  ๋•Œ๋Š” ๊ทธ๋žฌ์Šต๋‹ˆ๋‹ค) ์ด๋Ÿฌํ•œ ํ† ๋ก ์„ ํ•˜๋Š” ๊ฒƒ์€ ๊ทธ๋ฆฌ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค ๐Ÿ˜„

@๋ฏธ๋ž˜์˜ ๋‚˜:

Win2D๊ฐ€ C++/winrt(C++๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!)๋ฅผ ์ง€์›ํ•œ๋‹ค๊ณ  ํ™•์‹ ํ•˜์ง€๋งŒ, ์ด ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ๋‹ค์Œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/fobrs/Win2DinMFC

๋˜ํ•œ ์ด ์ƒ˜ํ”Œ์„ ๋”ฐ๋ผ WPF์—์„œ ์•„ํฌ๋ฆด( ๋‘ฅ๊ทผ ๋ชจ์„œ๋ฆฌ๊ฐ€ ์žˆ์Œ!!!)์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž ์ง€์ • ์•„ํฌ๋ฆด์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

https://github.com/microsoft/Windows.UI.Composition-Win32-Samples/tree/master/dotnet/WPF/AcrylicEffect

๊ทธ๋ฆฌ๊ณ  ์ด ๊ฒŒ์‹œ๋ฌผ์€ ๊ฒฝ์ด๋กญ์Šต๋‹ˆ๋‹ค.

https://notes.yvt.jp/Desktop-Apps/Enabling-Backdrop-Blur

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

@zadjii-msft ๊ทธ๋ž˜์„œ ํ„ฐ๋ฏธ๋„์˜ wpf ์ปจํŠธ๋กค์ด ์•„ํฌ๋ฆด ํ๋ฆผ ์‚ฌ์šฉ์ž ์ •์˜ ์•„ํฌ๋ฆด์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ UWP๋Š” ์ง€์›ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋งํ•˜๊ณ 

์•„๋‡จ UWP XAML์€ ์•„ํฌ๋ฆด์„ ์ž˜ ์ง€์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. UWP XAML์ด ํ˜„์žฌ ์ง€์›ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ์€ ๋‹จ์ง€ "๊ธฐ์กด ๋ถˆํˆฌ๋ช…๋„"(์•„ํฌ๋ฆด ํšจ๊ณผ๊ฐ€ ์—†๋Š” ๋ถˆํˆฌ๋ช…๋„)์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

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

@zadjii-msft @DHowett ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋œป์€ ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์•„ํฌ๋ฆด์ด๋ž€ ์‚ฌ์šฉ์ž ์ •์˜ ๊ฐ€๋Šฅํ•œ ํ๋ฆผ ๋ฐ˜๊ฒฝ์ด ์žˆ๋Š” ์•„ํฌ๋ฆด์„ ์˜๋ฏธํ–ˆ์Šต๋‹ˆ๋‹ค.

@zadjii-msft ๋ช‡ ๊ฐ€์ง€ ์‹คํ—˜์„ ํ•˜๊ณ  ์‹ถ์€๋ฐ xaml ํ˜ธ์ŠคํŒ… ์ฐฝ/DesktopWindowXamlSource๊ฐ€ ์ฝ”๋“œ์—์„œ ์ƒ์„ฑ๋˜๋Š” ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋งค์šฐ ํฐ ์ฝ”๋“œ๋ฒ ์ด์Šค ๐Ÿ˜‚๐Ÿ˜‚

@AnuthaDev src/cascadia/WindowsTerminal/IslandWindow.cpp

์ข‹์•„, ์ ์–ด๋„ wpf์—์„œ๋Š” ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
Screenshot (363)

IslandWindow.cpp์˜ ์ฐฝ์€ WS_EX_NOREDIRECTIONBITMAP์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ ์—ฌ๊ธฐ์—์„œ ๋”ฐ๋ฅด๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ๋ฆผ ํšจ๊ณผ ๊ฐ€

ํŽธ์ง‘: ๋‚ด๋ ˆ์ดํ„ฐ: ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค!

์•„๋งˆ๋„ IslandWindow.cpp์˜ ์ฐฝ์€ WS_EX_NOREDIRECTIONBITMAP์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์—ฌ๊ธฐ์—์„œ ๋”ฐ๋ฅด๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ _๋น„ ํ๋ฆผ_ ์—†๋Š”_ ์•„ํฌ๋ฆด๋ธŒ๋Ÿฌ์‹œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. createhostbackdropbrush()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž๋™์œผ๋กœ ํ๋ฆผ ํšจ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ createbackdropbrush()๊ฐ€ ์œ ์ผํ•œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ... idk. ๋…ธ๋ ฅํ•ด์„œ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค...

๊ทธ ๋ฐฉ๋ฒ•์ด WPF์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. XAML์€ WPF(ํ•ด๋‹น ๋ฉ”์„œ๋“œ) ๋ฐ UWP(WT์—์„œ ์‚ฌ์šฉ)์˜ ๋‘ ๊ฐ€์ง€ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” UWP ์•„ํฌ๋ฆด์— ๋Œ€ํ•œ ์†Œ์Šค๋ฅผ ์ฐ”๋Ÿฌ๋ณด์•˜๊ณ , ์ „ํ†ต์ ์ธ ํˆฌ๋ช…๋„๋ฅผ ์ž‘๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ๊ธฐ๋ณธ์ ์œผ๋กœ OS๋ฅผ ์†์—ฌ์„œ ๋ฐฐ๊ฒฝ์ด ์ด๋ฏธ ํ๋ ค์ ธ ๋ฐฐ๊ฒฝ์ด ํ๋ ค์ง€์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋„๋ก ํ•˜๋Š” ์ •๋ง Hakki ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ํ๋ฆผ ์ž์ฒด๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด, ํ•˜์ง€๋งŒ XAML ์•„์ผ๋žœ๋“œ์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ฒƒ์กฐ์ฐจ๋„ ๋‚˜๋Š” ์˜ˆ์œ ๋‚˜๋ฌด์ž…๋‹ˆ๋‹ค.

@zadjii-msft @DHowett ์ข‹์•„, ์—ฌ๊ธฐ ๋‚ด๊ฐ€ ์ฐพ์€ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
win2d๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ C++ win32 ์•ฑ์—์„œ ์‚ฌ์šฉ์ž ์ •์˜ ํ๋ฆผ ์•„ํฌ๋ฆด์„ ์–ป๋Š” ๊ฒƒ์ด ํ™•์‹คํžˆ ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค.

(ํ๋ฆผ ๋ฐ˜๊ฒฝ 1):
Screenshot (364)

ํ•˜์ง€๋งŒ!! xaml ์„ฌ์—์„œ๋Š” ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋“ฏ์ด xaml ๋’ค์—๋Š” ๋ถ„๋ช…ํžˆ ๋ถˆํˆฌ๋ช…ํ•œ ๋ฐฐ๊ฒฝ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค...

์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๊ตฌ์„ฑ API๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  hwnd DesktopWindowTarget์œผ๋กœ ๋ Œ๋”๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ํ˜„์žฌ์˜ ์•ฝ์ž ๋”ฐ๋ผ์„œ, ์šฐ๋ฆฌ๋Š” XAML ์„ฌ์„ ์ œ๊ฑฐํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค ๋น„ ํ๋ฆผ ์•„ํฌ๋ฆด ํˆฌ๋ช…์„ฑ์„ ์–ป๊ธฐ ์œ„ํ•ด ์ด ๋Œ€์‹  swapchainpanel์˜๋ฅผ.

(์ด๋ฏธ ์•Œ๊ณ  ๊ณ„์‹œ๋‹ค๋ฉด ์‹œ๊ฐ„๋‚ญ๋น„ํ•ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค...)

๋”ฐ๋ผ์„œ ์ค‘์š”ํ•œ ์•„ํ‚คํ…์ฒ˜ ๋ณ€๊ฒฝ ์—†์ด๋Š” ํˆฌ๋ช…์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.

(์ด๋ฏธ ๋ช…๋ฐฑํ•˜๊ณ  ๋‚ด๊ฐ€ ๊ธฐ์—ฌํ•œ ๋ฐ”๊ฐ€ ์ „ํ˜€ ์—†๋Š” ๊ฒฐ๋ก ๐Ÿ˜‚๐Ÿ˜‚)

๋„ค, ๊ทธ๋ž˜์„œ ์ด์ „ ๋…ผ์˜๋ฅผ ๋ชจ๋‘ ์ฝ๊ณ  ์‹ถ์ง€ ์•Š์€ ์‚ฌ๋žŒ์„ ์œ„ํ•œ TLDR์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Windows ํ„ฐ๋ฏธ๋„์— ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ํ˜„์žฌ ์ด ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€) ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋ ˆ์ž„์›Œํฌ(XAML ์•„์ผ๋žœ๋“œ)๊ฐ€ ํˆฌ๋ช…๋„๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ด ๋ฌธ์ œ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค, ๊ทธ๋ž˜์„œ ์ด์ „ ๋…ผ์˜๋ฅผ ๋ชจ๋‘ ์ฝ๊ณ  ์‹ถ์ง€ ์•Š์€ ์‚ฌ๋žŒ์„ ์œ„ํ•œ TLDR์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Windows ํ„ฐ๋ฏธ๋„์— ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ํ˜„์žฌ ์ด ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€) ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋ ˆ์ž„์›Œํฌ(XAML ์•„์ผ๋žœ๋“œ)๊ฐ€ ํˆฌ๋ช…๋„๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ด ๋ฌธ์ œ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์™œ ํˆฌ๋ช…๋„ ๊ธฐ๋Šฅ์€ ์ฒ˜์Œ์— ๊ทธ ํ”„๋กœ์ ํŠธ์— ํฌํ•จ๋˜์ง€ ์•Š์•˜๊ณ  UI ์—”์ง„์„ ์„ ํƒํ•  ๋•Œ ๊ณ ๋ ค๋˜์ง€ ์•Š์•˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. 10๋…„ ์ด์ƒ์˜ Linux ํ„ฐ๋ฏธ๋„ ์ž‘์—…์„ ํ†ตํ•ด ๋ชจ๋‘ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์—๊ฒŒ๋Š” ์ด์ƒํ•˜๋‹ค.

Powershell ๋ฐ CMD์—๋Š” ํˆฌ๋ช…๋„๋ฅผ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ ์€ ๋‹ค๋ฅด์ง€๋งŒ ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ํˆฌ๋ช…์„ฑ ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

Powershell ๋ฐ CMD์—๋Š” ํˆฌ๋ช…๋„๋ฅผ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ ์€ ๋‹ค๋ฅด์ง€๋งŒ ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ํˆฌ๋ช…์„ฑ ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ, WSL ํ„ฐ๋ฏธ๋„๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

CMD ๋ฐ PWSH ํˆฌ๋ช…๋„๋Š” ์ด ํ„ฐ๋ฏธ๋„๋กœ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‚ด๊ฐ€ ์ˆ˜์ง‘ํ•œ ๋ฐ”์— ๋”ฐ๋ฅด๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค(์ € ํฌํ•จ)์€ ํ•ด๋‹น ๋ฒ„์ „ ์˜ ํˆฌ๋ช…๋„๋ฅผ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ๋ฐฐ๊ฒฝ๋งŒ ๋ฐ˜ํˆฌ๋ช…ํ•œ *nix์™€ ์œ ์‚ฌํ•œ ํ„ฐ๋ฏธ๋„ ํˆฌ๋ช…๋„ ๋ชจ๋“  ๊ฒƒ, ํ…์ŠคํŠธ ํฌํ•จ.

๋˜ํ•œ ํ™”๋ฉด RECT ๊ทธ๋žฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ„ฐ๋ฏธ๋„ ์ž์ฒด์— ํŽ˜์ธํŠธ๋ฅผ ์น ํ•œ ๋‹ค์Œ ๋ฐ˜ํˆฌ๋ช… ์ƒ‰์ƒ์„ ์น ํ•˜๋Š” ๋“ฑ ํˆฌ๋ช…๋„๋ฅผ ์œ„์กฐํ•˜๋Š” ํ•ดํ‚น ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด์ฉŒ๋ฉด์ด (? ํ•จ๊ป˜) ์•„๋ž˜์— ์ฐฝ์„ ๋งŒ๋“ค์–ด (WS_EX_NOREDIRECTIONBITMAP์— ๋ถ€๋ชจ ์ฐฝ ์„ธํŠธ ํฌํ•จ) XAML ์„ฌ ์ฐฝ์„ ๊ตฌํ˜„ํ•˜๊ณ  ๊ทธ ์œ„์— WS_CLIPSIBLINGS์„ ์„ค์ • ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค, ๋‹ค์Œ ๊ตฌ์„ฑ API ๋ฐ DirectX ์ƒํ˜ธ ์šด์šฉ์„ฑ์€ (๋ฐ˜ํˆฌ๋ช… ๋ฐฐ๊ฒฝ๊ณผ ๋‚ด์šฉ์„ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์ฒ˜๋Ÿผ์„ ๊ทธ๋ž˜์„œ ) ์ด ์ฐฝ์—. ๋”ฐ๋ผ์„œ xaml ์„ฌ์„ ์ œ๊ฑฐํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ์Šคํฌ๋กค ๋ง‰๋Œ€์™€ ๊ฐ™์€ ํ•ญ๋ชฉ์€ ๊ณ„์† ์ž‘๋™ํ•ด์•ผ ํ•˜๋ฉฐ swapchainpanel ๋ถ€๋ถ„๋งŒ ๊ต์ฒด๋ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ HRGN์„ ์‚ฌ์šฉํ•˜์—ฌ swapchainpanel ๋ถ€ํ’ˆ ์œ„์— ๊ตฌ๋ฉ์„ ์ž˜๋ผ ๊ทธ ์•„๋ž˜์˜ ๊ตฌ์„ฑ ์ฐฝ์ด ํ‘œ์‹œ๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. swapchainpanel์—์„œ hwnd(์•„๋งˆ๋„)๋กœ ์ด๋™ํ•˜๋Š” ๋ˆˆ์— ๋„๋Š” ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

hackey ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ถ”๊ตฌํ•  ๋•Œ์˜ ๋ฌธ์ œ๋Š” hackey์ด๊ณ  ๋ณธ์งˆ์ ์œผ๋กœ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฝ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. WinUI 3๋Š” ์ œ์•ˆ๋œ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์œผ๋ฏ€๋กœ ๊ตฌํ˜„ ๊ณ„ํš์ด ์žˆ์œผ๋ฉฐ ๊ณต์‹ ๋„๊ตฌ ์ฒด์ธ์ด ์ด๋ฅผ ์ง€์›ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒŒ์ž„์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์ด๋ฏธ ์ด์— ๋Œ€ํ•ด WinUI ํŒ€๊ณผ ์ง์ ‘ ํ˜‘๋ ฅํ•˜๊ณ  ์žˆ์Œ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

(์ด๋ฏธ ๋ช…๋ฐฑํ•˜๊ณ  ๋‚ด๊ฐ€ ๊ธฐ์—ฌํ•œ ๋ฐ”๊ฐ€ ์ „ํ˜€ ์—†๋Š” ๊ฒฐ๋ก ๐Ÿ˜‚๐Ÿ˜‚)

๋‚˜๋Š” ๋‹น์‹ ์ด ์•„๋ฌด ๊ธฐ์—ฌ๋„ ํ•˜์ง€ ์•Š์•˜๋‹ค๊ณ  ๋งํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ•ญ์ƒ ๋‚ด ์ž์‹ ์˜ ์—ฐ๊ตฌ์— ๋Œ€ํ•œ ์™ธ๋ถ€ ํ™•์ธ์„ ๋ฐ›๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๋‚ด๊ฐ€ ํ‹€๋ ธ๋‹ค๋Š” ๊ฒƒ์„ ์ฆ๋ช…ํ•˜๊ณ  ์ด๊ฒƒ์„ ํ•  ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜๋‹ค๋ฉด ๋‚˜๋Š” ํ›จ์”ฌ ๋” ํ–‰๋ณตํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค ๐Ÿ˜‰

์ด ์Šค๋ ˆ๋“œ์—์„œ ์ด์ „์— ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด - ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ WinUI 3.0์— ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด WinUI ํŒ€๊ณผ ํ˜‘๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/microsoft/microsoft-ui-xaml/issues/1247 ์—์„œ ์ด๊ฒƒ์ด ์ถ”์ ๋˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค

์ด ์Šค๋ ˆ๋“œ์—์„œ ์ด์ „์— ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด - ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ WinUI 3.0์— ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด WinUI ํŒ€๊ณผ ํ˜‘๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด microsoft/microsoft-ui-xaml#1247 ์—์„œ ์ถ”์ ๋˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ํ„ฐ๋ฏธ๋„์— ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ตฌํ•  ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ์ด ์†”๋ฃจ์…˜์„ ๊ตฌ๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์€ Windows์˜ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์ „์ฒด ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์ค‘์š”ํ•œ ๊ฐœ๋ฐœ ํ”Œ๋žซํผ ๊ธฐ๋Šฅ์„ ๊ตฌ๋™ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ„ฐ๋ฏธ๋„ ํŒ€์ด ์ด์— ๋Œ€ํ•œ ๋ฐฉํ–ฅ์„ ์„ ํƒํ–ˆ์œผ๋ฏ€๋กœ "๋„์›€์„ ์›ํ•จ" ํƒœ๊ทธ๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

@tajetaje ์ข‹์€ ์บ์น˜, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

(์ด๋ฏธ ๋ช…๋ฐฑํ•˜๊ณ  ๋‚ด๊ฐ€ ๊ธฐ์—ฌํ•œ ๋ฐ”๊ฐ€ ์ „ํ˜€ ์—†๋Š” ๊ฒฐ๋ก ๐Ÿ˜‚๐Ÿ˜‚)

๋‚˜๋Š” ๋‹น์‹ ์ด ์•„๋ฌด ๊ธฐ์—ฌ๋„ ํ•˜์ง€ ์•Š์•˜๋‹ค๊ณ  ๋งํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ•ญ์ƒ ๋‚ด ์ž์‹ ์˜ ์—ฐ๊ตฌ์— ๋Œ€ํ•œ ์™ธ๋ถ€ ํ™•์ธ์„ ๋ฐ›๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๋‚ด๊ฐ€ ํ‹€๋ ธ๋‹ค๋Š” ๊ฒƒ์„ ์ฆ๋ช…ํ•˜๊ณ  ์ด๊ฒƒ์„ ํ•  ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜๋‹ค๋ฉด ๋‚˜๋Š” ํ›จ์”ฌ ๋” ํ–‰๋ณตํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค ๐Ÿ˜‰

์ด ์Šค๋ ˆ๋“œ์—์„œ ์ด์ „์— ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด - ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ WinUI 3.0์— ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด WinUI ํŒ€๊ณผ ํ˜‘๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด microsoft/microsoft-ui-xaml#1247 ์—์„œ ์ถ”์ ๋˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ํ„ฐ๋ฏธ๋„์— ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ตฌํ•  ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ์ด ์†”๋ฃจ์…˜์„ ๊ตฌ๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์€ Windows์˜ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์ „์ฒด ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์ค‘์š”ํ•œ ๊ฐœ๋ฐœ ํ”Œ๋žซํผ ๊ธฐ๋Šฅ์„ ๊ตฌ๋™ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@zadjii-msft, WinUI๊ฐ€ ์ด ๋ถ€๋ถ„์—์„œ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฒฝ๊ณ„ ์—†๋Š” ๋ฌธ์ œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์šฐ๋ฆฌ๋ฅผ ๊ฑฐ๊ธฐ์— ์ด๋ฅด๊ฒŒ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ์ถ”๊ตฌ ํ•˜๋Š” ์‹ค์ œ ๊ฒฐ๊ณผ์˜ ๊ด€์ ์—์„œ ๋ณผ ๋•Œ ์ด๊ฒƒ์€ #743 )์˜ ์•„๋ฆ„๋‹ค์šด ํ‘œํ˜„์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

image

(์ด๋ฏธ ๋ช…๋ฐฑํ•˜๊ณ  ๋‚ด๊ฐ€ ๊ธฐ์—ฌํ•œ ๋ฐ”๊ฐ€ ์ „ํ˜€ ์—†๋Š” ๊ฒฐ๋ก ๐Ÿ˜‚๐Ÿ˜‚)

๋‚˜๋Š” ๋‹น์‹ ์ด ์•„๋ฌด ๊ธฐ์—ฌ๋„ ํ•˜์ง€ ์•Š์•˜๋‹ค๊ณ  ๋งํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ•ญ์ƒ ๋‚ด ์ž์‹ ์˜ ์—ฐ๊ตฌ์— ๋Œ€ํ•œ ์™ธ๋ถ€ ํ™•์ธ์„ ๋ฐ›๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๋‚ด๊ฐ€ ํ‹€๋ ธ๋‹ค๋Š” ๊ฒƒ์„ ์ฆ๋ช…ํ•˜๊ณ  ์ด๊ฒƒ์„ ํ•  ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜๋‹ค๋ฉด ๋‚˜๋Š” ํ›จ์”ฌ ๋” ํ–‰๋ณตํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค ๐Ÿ˜‰
์ด ์Šค๋ ˆ๋“œ์—์„œ ์ด์ „์— ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด - ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ WinUI 3.0์— ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด WinUI ํŒ€๊ณผ ํ˜‘๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด microsoft/microsoft-ui-xaml#1247 ์—์„œ ์ถ”์ ๋˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ํ„ฐ๋ฏธ๋„์— ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ตฌํ•  ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ์ด ์†”๋ฃจ์…˜์„ ๊ตฌ๋™ํ•œ๋‹ค๋Š” ๊ฒƒ์€ Windows์˜ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์ „์ฒด ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์ค‘์š”ํ•œ ๊ฐœ๋ฐœ ํ”Œ๋žซํผ ๊ธฐ๋Šฅ์„ ๊ตฌ๋™ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@zadjii-msft, WinUI๊ฐ€ ์ด ๋ถ€๋ถ„์—์„œ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฒฝ๊ณ„ ์—†๋Š” ๋ฌธ์ œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์šฐ๋ฆฌ๋ฅผ ๊ฑฐ๊ธฐ์— ์ด๋ฅด๊ฒŒ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ์ถ”๊ตฌ ํ•˜๋Š” ์‹ค์ œ ๊ฒฐ๊ณผ์˜ ๊ด€์ ์—์„œ ๋ณผ ๋•Œ ์ด๊ฒƒ์€ #743 )์˜ ์•„๋ฆ„๋‹ค์šด ํ‘œํ˜„์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

image

https://github.com/microsoft/microsoft-ui-xaml/issues/1247 ์€ ๊ฒฝ๊ณ„๊ฐ€ ์—†๊ณ  ํˆฌ๋ช…๋„๋ฅผ ๋ชจ๋‘ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

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