Popup ํ๋ฉด ๊ฐ๋ฐ
์ ํ๋ฉด ์์
ํ๊ธฐ ์ํด์ ์ฌ๋ฌ ๊ณ ๋ฏผ์ ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Plugin.Maui.Popup)๋ฅผ ํฌํจํ์ฌ ํ์
ํ์ด์ง ํด๋์ค๋ฅผ ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ ํ์์ต๋๋ค.

(LukeContentPage์ ๋๊ฐ์๊ธฐ ๋๋ฌธ์ ํฅํ์ ๋ณ๋๋ก ๊ณตํต ํด๋์ค๋ก ๋ฝ์ ์ฒ๋ฆฌํ๋ฉด ๊น๋ํ๊ฒ ๊ตฌํ ์์ )
NavigattionPage์ PushModal HotReload ๊ธฐ๋ฅ ์ด์(ํด๊ฒฐ์๋ฃ)
NavigatePage์ ๊ฒฝ์ฐ Push์ PushModal์ ์์ด์ HotReload ๊ตฌํ ๋ฐฉ์์ด ๋ฌ๋์ต๋๋ค.

ํ์ฌ ๋ค๋น๊ฒ์ด์
์ CurrentPage์ ๊ฒฝ์ฐ ๋์๋๋ ๊ตฌ๊ฐ์
๋๋ค.
Push ํ์ด์ง๋ฅผ ๋์ธ ๊ฒฝ์ฐ์๋ ์ ์์ ์ผ๋ก ๋์์ด ๋์ง๋ง,
PushModal ํ์ด์ง๋ฅผ ๋์ธ ๊ฒฝ์ฐ CurrentPage๋ PushModal์ ๋์ด ํ์ด์ง๋ฅผ ๋ปํ๊ณ ์๋ค๋ ๊ฒ์ ํ์ธํ์์ต๋๋ค.

์์ ๊ฐ์ด TryGetModalStackPageํจ์(๊ธฐ์กด HotReload ์์ ) ๋ฅผ ์์ฉํ์ฌ ModalStack์ ๋ง์ง๋ง ํ์ด์ง๋ฅผ ๋ถ๋ฌ์์ Buildํจ์ ์คํํ๋ ๊ฒ์ผ๋ก ํด๊ฒฐํ์์ต๋๋ค.

์๊ฒ๋ ์
WPF์ MAUI๋ ๋น์ทํ๋ค!?
@jamesnet214 ๋๊ป์ ํญ์ ๋ง์ํ์ CustomControl(์ฌ์ฉ์์ง์ ์ปจํธ๋กค)์ ์ค์์ฑ์ ๊น์ด ๊ณต๊ฐํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์์ฐ์ค๋ฝ๊ฒ Maui์ ์ ์ ๋ถ๋ถ์ด ์๋์ง ์กฐ๊ธ์ด๋๋ง ๊ด์ฌ์ ์งํ๋ฉฐ ์ง์ผ๋ณด๊ณ ์์์ต๋๋ค.
๊ทธ๋ฌ๋ค ์ด๋ฒ Slog๋ฅผ ํตํด Popup ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ค ๋ถ์ ์ค WPF์ ๋น์ทํ์ ์ ๋ฐ๊ฒฌํ์์ต๋๋ค.
Maui์์ WPF์ ๊ฐ ์ปจํธ๋กค๋ง๋ค ์์ฑ์ ์ง์ฐ๊ณ ๋ค์ ๊ทธ๋ฆด ์ ์๋ Template ์ด ์๋ ์ค ์์๋๋ฐ
ControlTemplate์ด ๊ทธ ๊ธฐ๋ฅ์ ํ๊ณ ๋์ฒดํ๊ณ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค.
ControlTemplate๋ ContentPage์ ContentView ์กด์ฌํ์์ต๋๋ค.
์ฆ,
WPF์ Window = Maui์ ContentPage
WPF์ ContentControl or UserControl = Maui์ ContentView
ํ์ง๋ง ์์ฝ๊ฒ๋โฆ Maui์์ ContentPage์ ContentView, ํน์ ์ปจํธ๋กค(RadioButton) ์ธ ๋ค๋ฅธ ์ปจํธ๋กค์์๋ ControlTemplate๋ค์ด ์กด์ฌํ์ง ์์์ต๋๋ค.
ControlTemplate์ Page์ Layout์ ๊ณ ์ BindableProperty๋ก ์กด์ฌํ๋ ๋ฐ๋ฉด
๋ค๋ฅธ ์ปจํธ๋กค์ ํน๋ณํ์ง ์๋ ์ด์ ์์๊ณ์ธต์ด ์ ๋ถ View๋ก ์์๋ฐ๊ณ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
ํ์ง๋ง ์์์ ์ธ๊ธํ ํน์ ์ปจํธ๋กค ์ธ RadioButton์ ControlView์ ๊ฐ์ Layout์ ์์๋ฐ๊ณ ์๋๊ฒ์ ๋ณด์์ต๋๋ค.
RadioButton๋ ์ปค์คํ
์ ํตํด ๋ง๋ค์ด์ง ์ปจํธ๋กค์ด๋ผ๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค.
(์ ์ ํ๊ณ ๋ค๋ค๋ณด๋ ๋ด์ฉ์ด ๊ธธ์ด์ง ๊ฑฐ ๊ฐ์ ๋ค์ ๊ธฐํ์ ๋ค๋ฅธ ๊ฒ์๊ธ์ ํตํดโฆ๊ณต์ ํ๋๊ฒ์ผ๋กํ๊ฒ ์ต๋๋ค.)
(์ถ์ธก) ํ์
์ฐฝ์ผ๋ก ๋ง๋ค์ด์ง ContentPage๋ ์ ๋ณ๊ฒฝ๋์ง ์์๊น?
๋๊ฒ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ง๋ค์ด์ง Popup์ ํธ์ถ ์ PushModal ๋ฐฉ์์ผ๋ก Page๋ฅผ ๋์๋๋ค.
์ ๊ฐ HotReload ๊ตฌํํ์ ๋ ์ด์์ ๋น์ทํ ์ํฉ์ผ๋ก PushModal์ ๊ฒฝ์ฐ ๋์ด์ง ContentPage๋ NavigationPage์ CurrentPage์ ํด๋น๋์ง ์๊ธฐ ๋๋ฌธ์ HotReload๊ฐ ๋์๋์ง ์๋๊ฒ์ผ๋ก ํ์
๋ฉ๋๋ค.
(์ ์ง ์ด๊ฑฐ Maui Github์ ๋ฒ๊ทธ์ด์๋ก ์ฌ๋ฆฌ๋ฉด ํด๊ฒฐ์ด ๊ฐ๋ฅํ ๊ฑฐ ๊ฐ์โฆ)