NumberBox ์ปจํธ๋กค์ ๊ฐ๋ฐ์์๊ฒ ์ซ์(์ ์, ๋ถ๋ ์์์ ๋๋ ํตํ) ๊ฐ์ ์์ ํ๊ธฐ ์ํ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์ปจํธ๋กค์ ์ ๊ณตํฉ๋๋ค. ํค๋ณด๋ InputScope๋ Number๋ก ์ค์ ๋๋ฉฐ Up/Down ๋ฒํผ, ์์ ์ง์ ๋ฐ ๊ธฐ๋ณธ ๊ณ์ฐ๊ณผ ๊ฐ์ ์ถ๊ฐ ์ง์์ด ์ ํ์ ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค.
UWP์๋ ํ ์คํธ, ๋ ์ง ๋ฐ ์๊ฐ ๊ฐ์ ๋ํ ์ปจํธ๋กค์ด ์์ต๋๋ค. ์ซ์ ๊ฐ์ด ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ซ์๋ ๋งค์ฐ ์ผ๋ฐ์ ์ ๋๋ค. ๊ทธ๋ค์ ์์ฒด ์ ๋ ฅ ์ ์ด๋ฅผ ๋ฐ์ ์๊ฒฉ์ด ์์ต๋๋ค. ๋ฐ์ดํฐ ์ ๋ ฅ ๋ํ ์์๋ฅผ ๋ง๋๋ ๋ชจ๋ ์ํฐํ๋ผ์ด์ฆ ์ฑ ๊ฐ๋ฐ์์๊ฒ ๋์์ด ๋ฉ๋๋ค.
๊ณ์ฐ๊ธฐ์ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ ์ฌํ ์ ์์ ์ฐพ์์ต๋๋ค. https://github.com/microsoft/calculator/issues/453
| ๊ธฐ๋ฅ | ์ฐ์ ์์ |
|:--|:-:|
| ์
๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ(์ต์/์ต๋ ํฌํจ). | ํ์ |
| ํ์ฑํ ๊ฐ๋ฅํ ๋ฉ์ด๋ผ์ด๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์ ์ ๋จ๊ณ ํฌ๊ธฐ์ ๋ฐ๋ผ ๊ฐ์ ์ฆ๊ฐ/๊ฐ์์ํค๋ ๋ฉ์ปค๋์ฆ์
๋๋ค. | ํ์ |
| ํตํ, ์ ๋์ฌ/์ ๋ฏธ์ฌ ๋ฑ์ ๋ํ ์์ ์ง์ | ํ์ |
| ๊ณ์ฐ๊ธฐ ์ง์. | ํ์|
| ์คํฌ๋กคํ๊ณ ๋๋๊ทธํ์ฌ ์
๋ ฅ์ ๋ณ๊ฒฝํฉ๋๋ค. | ๋ฏธ์ |
๊ณ์ฐ๊ธฐ ์ง์
๊ณ์ฐ๊ธฐ ์ง์์ด ์์ผ๋ฉด ์ข์ ๊ฒ์
๋๋ค. NumberBox์ '5 + 2'๋ฅผ ์
๋ ฅํ๋ฉด ์ด์ ์ ์์์ ๋ 7์ ๊ณ์ฐํฉ๋๋ค.
์ด๊ฒ์ ๋์์ผ๋ก ๊ตฌํํ๋ ค๊ณ ์๋ํ์ง๋ง NumberBox ์ปจํธ๋กค์ด ๋ ์ ํฉํ๊ณ ๊ฒ์ํ๊ธฐ ๋ ์ฝ๋ค๊ณ ์๊ฐํฉ๋๋ค. https://github.com/sonnemaf/XamlCalculatorBehavior
์
๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ
์ปจํธ๋กค์ด ๋ชจ๋ ์
๋ ฅ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ฉด ์ข์ ๊ฒ์
๋๋ค. (์๋ฅผ ๋ค์ด) ์์์ ๊ตฌ๋ถ ๊ธฐํธ๋ฅผ ๋ ๋ฒ ์
๋ ฅํ๋ ๊ฒ์ ํ์ฉํ์ง ์์ต๋๋ค. CanBeNegative(bool) ๋ฐ DecimalsPlaces(int) ์์ฑ๋ ํ์ํฉ๋๋ค.
์ด๊ฒ์ ๋์์ผ๋ก ๊ตฌํํ๋ ค๊ณ ์๋ํ์ง๋ง NumberBox ์ปจํธ๋กค์ด ๋ ์ ํฉํ๊ณ ๊ฒ์ํ๊ธฐ ๋ ์ฝ๋ค๊ณ ์๊ฐํฉ๋๋ค. https://github.com/sonnemaf/NumberBoxBehavior
์/์๋ ๋ฒํผ
met์ด NumberBox ์์ '+' ๋ฐ '-' ๋ฒํผ์ ์ถ๊ฐํ ์ ์๋๋ก ํ๋๊ทธ๋ฅผ ์ค์ ํ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์
๋๋ค. ์ต์ ๋ฐ ์ต๋ ์์ฑ์ด ์ข์ ๊ฒ์
๋๋ค.
ํตํ ์ง์
ํตํ ์
๋ ฅ์ ์ง์ํฉ๋๋ค.
๋ด๋ ์ดํฐ ์ฌ์ฉ์์ ๊ฒฝ์ฐ "๋ํ๊ธฐ" ๋ฐ "๋นผ๊ธฐ"๊ฐ ์๋๋ผ ์๋ก/์๋๋ก ๋ฒํผ + ์ฆ๋ถ์ ๋ช ์ํ๊ณ ๋ช ํํ๊ฒ ์ดํดํ ์ ์๋์ง ํ์ธํฉ๋๋ค.
Xbox ์ปจํธ๋กค๋ฌ์ ์๋ ๋ก๊ทธ ์คํฑ๊ณผ D-Pad๊ฐ ์์๋๋ก ์๋ํ๋๋ก ํ๊ธฐ ์ํด ํฌ์ปค์ค ํธ๋ํ์ด ํ์ํฉ๋๊น?
16์ง์ ๋๋ 2์ง์์ ๋ํ ์ง์์ด ํ์ํ ๊ฒ์ ์ ๋นํํ๋ ์ค์ ์ฑ ์๋๋ฆฌ์ค๊ฐ ์๋ ์ฌ๋์ด ์์ต๋๊น?
๊ณ์ฐ ๊ฒฐ๊ณผ์ ๋ํ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๋ง๋๋ ๋ฐ ๊ฐ์น๊ฐ ์์ต๋๊น? @mdtauk ๋ ๋ช ๊ฐ์ง ์์ ์๊ฐํ๋ฅผ ๋ง๋ค์์ต๋๋ค.
์์์ ์ผ๋ก Telerik์๋ https://www.telerik.com/universal-windows-platform-ui/numericbox๊ฐ ์์ต๋๋ค. ์คํ ์์ค์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค: https://github.com/telerik/UI-For-UWP/blob/master/Controls/Input/Input.UWP/NumericBox/RadNumericBox.cs.
๋ด๊ฐ ๊ทธ๋ค์๊ฒ์ ์ข์ํ๋ ๊ฒ์ ValueFormat ์์ฑ์ ์ฌ์ฉํ ํ์ํ์ ๋ํ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค.
์: ValueFormat="{}{0,0:C2}"
๋ํ ์ด๊ฒ์ด ์ฌ๋ฐ๋ฅด๊ฒ ํ์งํ๋์๋์ง ํ์ธํ์ญ์์ค. Windows Community Toolkit ๊ตฌํ์๋ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ๋จ์ ์ด ์์ต๋๋ค.
ValidationType="Decimal"์ธ TextBoxRegex ํ์ฅ์ ๋ชจ๋ UI ๋ฌธํ๊ถ์ ์ง์ํ์ง ์์ต๋๋ค. ๋์ InvariantCulture๋ก ๊ณ ์ ๋ฉ๋๋ค. ์์ด์์ ์ญ์ง์ ๊ฐ์ ๋ง์นจํ๊ฐ ์๋ "10.1234"์ ๋๋ค. ์คํ์ธ์ด ๋๋ ๋ ์ผ์ด ์ญ์ง์ ๊ฐ์ "10,1234"๋ก ํ๊ธฐ๋ฉ๋๋ค. ์์ด ๊ตฌ๋ฌธ ๋ถ์์ด ์ ํํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์คํ์ธ์ด ๋๋ ๋ ์ผ์ด ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ถ์ ๋ถ๋ถ์ด ์์ค๋ "101234"์ ๋๋ค.
์ฐธ์กฐ: https://github.com/windows-toolkit/WindowsCommunityToolkit/issues/2700
์์ชฝ ๋ฐ ์๋์ชฝ ํ์ดํ๋ ๊ฐ๋ฐ์๊ฐ ์ค์ ํ ์ ์๋ ๊ฐ๋งํผ ๊ฐ์ ์ฆ๊ฐ ๋๋ ๊ฐ์์์ผ์ผ ํ์ง๋ง ๊ธฐ๋ณธ๊ฐ์ int 1์ด์ด์ผ ํฉ๋๋ค.
WinRT XAML Toolkit์ ๊ตฌํ๋ ๊ฐ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด ์/์๋๋ก ๋๋๊ทธ๋ฅผ ์ง์ํ๋ฉฐ ํน์ ์๋๋ฆฌ์ค์์ ๋ฒํผ์ ํด๋ฆญํ๋ ๊ฒ๋ณด๋ค ๋ง์ฐ์ค๋ก ์ฌ์ฉํ ๋ ํจ์ฌ ๋ ์ ์ฉํฉ๋๋ค.
https://github.com/xyzzer/WinRTXamlToolkit/tree/master/WinRTXamlToolkit/Controls/NumericUpDown
์๋ ํ์ธ์, @sonnemaf , @ArchieCoder , @robloo , @mdtauk , @adrientetar , ๊ทธ๋ฆฌ๊ณ @xyzzer์ ๋๋ค! ์ ๋ ์ด ์ ์์ ๋ฐฐ์ ๋์์ต๋๋ค.
๋จผ์ ์ ์ถํด ์ฃผ์ @sonnemaf ๋๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ง๋์ฃผ ๋ง์ดํฌ๋ก์ํํธ ๋น๋ 2019์์ ์ ๋ณด์๋๋ฐ ๊ด๊ฐ๋ค์ ํํธ๋ฅผ ๋ฐ์์ต๋๋ค! ๋๊ธ์ ์ปค๋ฎค๋ํฐ ๋ฐ์์ ๋ํ NumberBox๊ฐ ์ผ์ด๋๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ดํ๋ ํฅ๋ถ์ ๋ฐ์ํฉ๋๋ค.
๋๋ ๋ชจ๋ ์ฌ๋์ ์๊ฒฌ์ ์ฝ๊ณ ๋ฐ์ ์ ๋ ฅ์ ๋ฐ์ํ๋๋ก ๋ฒ์ ์น์ ์ ์ ๋ฐ์ดํธํ์ต๋๋ค. ๋ชจ๋ ์ฌ๋ ์ด ์ด ์์ ์ ๋ฐ์ดํธ๋ฅผ ํ์ธํ๊ณ ๋ด๊ฐ ์์ฒญ์ ์ ํํ๊ฒ ์บก์ฒํ์ง ๋ชปํ๋ค๋ฉด ์๋ ค ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ์ผ๋ถ ์ธ๋ถ์ ๋ณด(์: ํ์งํ ํ์ ์ง์ )๋ ์ฌ์ ์์ค์์ ์ฒ๋ฆฌ๋ฉ๋๋ค.
์๋ ํ์ธ์ @SavoySchuler ๋ ,
์ด๋ฒ ์ฃผ์๋ ์ฑ์ ์ ๊ทผ์ฑ ๊ธฐ๋ฅ์ ์์ ์ค์ ๋๋ค. ์๋ฅผ ๋ค์ด "ํ๋ฌ์ค", "๋ง์ด๋์ค" ๋์ ์ฆ๋ถ์ ํฐ ์๋ฆฌ๋ก ๋งํ ์ ์๋ ์ ์ปจํธ๋กค๋ก ์ ๊ทผ์ฑ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌ๋๋ค๋ฉด ์ด๊ฒ์ ํ๋ฌ์ค๊ฐ ๋ ๊ฒ์ ๋๋ค. ๋๋จธ์ง๋ ๋์๊ฒ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
๋ด๋ ์ดํฐ๊ฐ ๊ฐ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฝ์ ์ ์๋์ง ํ์ธํ์ฌ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ๋ช ํํ๊ฒ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
Xbox ์ปจํธ๋กค๋ฌ๊ฐ ์๋ ๋ก๊ทธ ์คํฑ๊ณผ D-Pad๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋๋ก ํ๊ธฐ ์ํด ์ด์ ์ ๋๋๋ ค์ผ ํ๋์ง ํ์คํ์ง ์์ต๋๋ค.
์์ ์์ - ํ์ฑํ๋ ๋๊น์ง ํ ์คํธ ํ๋ ์์ฒด์์ ์ฆ๊ฐ/๊ฐ์ ๋๋๊ทธ๊ฐ ์๋ํด์ผ ํฉ๋๋ค. ๋ด ๊ตฌํ์์ IIRC๋ฅผ ํ์ฑํํ๊ณ ๋๋๊ทธํ๋ ๋์ ๋ง์ฐ์ค ์ปค์๋ฅผ ์จ๊ฒจ์ ์ปจํธ๋กค์ด๋ ํ๋ฉด์ ํ ๋๋ฆฌ๊ฐ ๋๋๊ทธ ๊ฑฐ๋ฆฌ๋ฅผ ์ ํํ์ง ์๊ณ ๋๋๊ทธ๊ฐ ์๋ฃ๋๋ฉด ํ ์คํธ ํ๋ ์์ ํฌ๋ช ์ค๋ฒ๋ ์ด๋ฅผ ๋ฃ์ด์ผ ํ์ต๋๋ค. ์ปค์๋ฅผ ๋ค์ ํ์ํฉ๋๋ค. ์ปค์๊ฐ ์ฒ์ ์ฌ๋ผ์ง ์์น์ ๋ํ๋ฉ๋๋ค.
@SavoySchuler ์๊ณ ํ์ จ์ต๋๋ค. ๋๋ ๋น์ ์ ๋ฒ์์ ํจ๊ป ์ด ์ ์์ต๋๋ค. ๊ณ์ฐ๊ธฐ๋ ์์ผ๋ฉด ์ข์ต๋๋ค(WinUI 3.0 ๋๋ 3.1). ์ ๋ ๋ง์ ๋ฐ์คํฌํ ํ๊ฒฝ(VB6, WinForms, WPF ๋ฐ UWP)์์ ๊ฐ๋ฐํ์ผ๋ฉฐ ํญ์ NumberBox๋ฅผ ๋์ณค์ต๋๋ค. ๋ง์นจ๋ด ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ป์ ๊ฒ์ ๋๋ค.
์/์๋๋ก ๋ง์ฐ์ค ์คํฌ๋กค ํ ์ ์ถ๊ฐํ ์๋ ์์ต๋๋ค. Blend for Visual Studio๋ ์ด๋ฅผ ์ง์ํฉ๋๋ค.
๋ํ Expression Blend์์ ๋ง์ด ์ฌ์ฉํ๋ Drag-to-change๋ ์ข์ํฉ๋๋ค.
์ด๋ค ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ์ํ๋๊ณ ์ํ๋์ง ์์์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ต์/์ต๋ ๋๋ ์ ํ ํค๋ณด๋(๋ฌธ์ az ๋ฑ)๋ง ๋ฉ๋๊น? ์๋ชป๋ ์ซ์ ๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ์ฒ๋ฆฌํฉ๋๊น?
์ ์ฒด ์ฌ์์ ์ฝ๊ณ ์ถ์ต๋๋ค.
@ArchieCoder , ํฌ๊ณ
@mdtauk , ์ธ์ ๋์ฒ๋ผ ํ๋ฅญํ ์ง๋ฌธ์ ๋๋ค. ๋๋ ์ด๊ฒ์ ์กฐ์ฌํ๊ธฐ ์ํ ๋ฉ๋ชจ๋ก ์ ๊ทผ์ฑ ๋ฐ ์ ๋ ฅ ์น์ ์ ์ถ๊ฐํ์ต๋๋ค.
@xyzzer๋ ๋ง์์ด ๋ง์ต๋๋ค. ๋ฒ์ ๋ชฉ๋ก์ ์ฌ๊ตฌ์ฑํ ๋ ๊ด๋ จ ๊ธฐ๋ฅ์ผ๋ก Up/Down ๋ฒํผ๊ณผ drag-to-change๋ฅผ ๊ทธ๋ฃนํํ์ต๋๋ค. ๋ค์ ์ฝ์ผ๋ฉด ๋ง์น ๋๋๊ทธํ์ฌ ๋ณ๊ฒฝ์ด ๋ฒํผ์ ๊ธฐ๋ฅ์ด๋ผ๊ณ ์ ์ํ๋ ๊ฒ์ฒ๋ผ ๋ํ๋ฌ์ต๋๋ค. ๋ช ํ์ฑ์ ์ ๊ณตํ๊ธฐ ์ํด ๋๋๊ทธ-ํฌ-์ฒด์ธ์ง๋ฅผ ์์ฒด ์น์ ์ผ๋ก ์ฎ๊ฒผ์ต๋๋ค.
@sonnemaf , ๊ต์ฅํฉ๋๋ค. ์ฌ์์ ๋ํ ๋งํฌ๋ ์ค๋์ด๋ ๋ค์ ์ฃผ์ ์ด๋ฆฌ๋ฉด ๋ฐ๋ก ๊ฒ์ํ๊ฒ ์ต๋๋ค. ์ ์ ํจ๊ป ๊ธ์ ์ฐ๋๋ก ๊ฒฉ๋ คํด์ฃผ์ธ์! ๊ทธ๋๊น์ง๋ ์ฌ๊ธฐ์์ ๋ฒ์์ ์คํฌ๋กคํ์ฌ ๋ณ๊ฒฝํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค.
๋ชจ๋ , ๊ณ์ฐ๊ธฐ ์ง์์ ๋ํ ๋ฉ๋ชจ์ ํจ๊ป - ๋๋ ๊ฐ์น๋ฅผ ๋ฏฟ์ต๋๋ค. ์ ๋ ์ฐ๋ฆฌ ํ๊ณผ ํ๋ ฅํ์ฌ ํ๋ซํผ์์ ๊ธฐ๋ฅ์ ์ถ๊ฐ๋ก ํ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ๋ชจ๋ํํด์ผ ํ๋ ํญ๋ชฉ์ธ์ง ํ์ ํ๊ณ ์์ต๋๋ค. ๋ํ ๊ณ์ฐ๊ธฐ ์ง์์ ์ด๋๊น์ง ํ ์ ์๋์ง์ ๋ํ ์ง๋ฌธ์ด ์์ต๋๋ค. +-/*์ ๋ํ ๊ฐ๋จํ ์์ ์์๊ฐ ์ํ๋ฉ๋๊น? ์๋๋ฉด ์ผ์ข ์ Wolfram ์ํ ์๋น์ค์ ์ฐ๊ฒฐํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ณด๋ค ํฌ๊ด์ ์ธ ๊ฒ์ ๋๊น? ๋ชจ๋์ ๊ฒฝ๋ก๋ฅผ ํ์ํ๋ฉด ๋ ํฌ๊ด์ ์ธ ํํ์ ๊ณ์ฐ๊ธฐ ์ง์ ๊ธฐํ๋ฅผ ์ฐจ๋จํ์ง ์์ผ๋ฉด์ ๋ ๊ธฐ๋ณธ์ ์ธ ๊ฒฝ์ฐ๋ถํฐ ์์ํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ ๋ชจ๋ ์ฌ๋์ ์๊ตฌ ์ฌํญ์ ์๊ณ ์ถ์ต๋๋ค.
์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ์ ๊ฒฝ์ฐ ๋์ผํ ์ง๋ฌธ์ด ์์ต๋๋ค. ์ต์, ์ต๋, ๋ฌธ์ ์์ ๋ฐ ์๋ชป๋ ๋ถ์ฌ๋ฃ๊ธฐ๊ฐ ์ ์ฉ๋์ง ์์ต๋๊น?
๋๋ ๊ณ์ฐ๊ธฐ ๊ธฐ๋ฅ์ด ๊ท์ฝ๋ค๊ณ ์๊ฐํ์ง๋ง ์ค์ ๋ก ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉ์๊ฐ ์ด๋ป๊ฒ ๋ฐ๊ฒฌํฉ๋๊น? ์ด์ ๋ํ ์ฝ๊ฐ์ ์์ ฏ ํํธ๊ฐ ์์ต๋๊น?
@ArchieCoder ,
๊ฐ๋ฐ์์๊ฒ ์์กดํ๋๋ก ์์ฒญํ ์ ์๋ ์ฑ ์์ค์ ์ง์นจ์ ์ํ ToolTip ๋๋ ๋ ๋ฌด๊ฑฐ์ด TeachingTip์ด ์์ง๋ง ์ ๋ NumberBox ์์ฒด ๋ด์์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค.
์ฌ๊ธฐ์์ ๋น์ ์ ์๊ฐ์ ๋ฃ๊ณ ์ถ์ต๋๋ค!
๊ณต๊ฐ ์ ํ์ผ๋ก ์ธํด ๋ค๋ฅธ ์ปจํ ์คํธ๊ฐ ํ์ํ์ง ์์ ํ ์๋ฆฌ ํ์์๋ ์ค์ ๋ก ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด NumberBox ๋๋น๊ฐ ํ ์คํธ ์์๋ณด๋ค ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ปจํธ๋กค์ด nullable ์ซ์๋ฅผ ์ง์ํ์ง ์๋ ํ - ํญ์ ๊ฐ์ ํ์ํฉ๋๋ค.
๋ฐ๋ผ์ ๊ทธ ์์ ์๋ฆฌ ํ์์ ๋ฌธ์์ด์ ์ํ ๊ณต๊ฐ์ด ์์ต๋๋ค.
2019๋
5์ 17์ผ ๊ธ์์ผ ์ค์ 10์ 14๋ถ ArchieCoder [email protected]
์ผ๋ค:
๋ค๋ฅธ ์ปจํ ์คํธ๊ฐ ์๋ ํ ์๋ฆฌ ํ์์๋ ์ค์ ๋ก ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค.
๊ณต๊ฐ ์ ์ฝ์ผ๋ก ์ธํด ํ์ํฉ๋๋ค. NumberBox ๋๋น๊ฐ
์๋ฅผ ๋ค์ด ํ ์คํธ ์์๋ณด๋ค ์์์ผ ํฉ๋๋ค.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/microsoft/microsoft-ui-xaml/issues/483?email_source=notifications&email_token=AANMBMAL7LUOVPIM55PYO4LPV3RWPA5CNFSM4HA4PBNKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVX
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AANMBMBKHP7GP5WUHLPWNZLPV3RWPANCNFSM4HA4PBNA
.
@ArchieCoder , @sonnemaf ์ ์๋ฅผ ๋ณด๋ฉด(๋ค์ ํ ๋ฒ ๊ฐ์ฌํฉ๋๋ค) "a + b - c"์ ๋ํ ์๋ฆฌ ํ์์ ํ ์คํธ๋ฅผ ํ์ํ ๋งํผ ์ถฉ๋ถํ ๋์ง ์์ NumberBox๋ ๊ถ์ฅ ์ฌ์ฉ์ ๊ฒฝํ์ ์์ฑํ๊ธฐ์ ์ถฉ๋ถํ ๋์ง ์์ต๋๋ค. ์ ๋ฐฉ์ ์์ ์ ๋ ฅํฉ๋๋ค. ๊ทธ๋ฐ ์ ์์ ์ด ์๋ฃจ์ ์ต์ ์ด ์ด ๋ชฉ์ ์ ์ฌ์ ํ ์คํ ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๋น์ ์ด ์ฐ๋ฆฌ๊ฐ ์์ง ๋ค๋ฃจ์ง ์์ ์์ญ์ ๋๋๋ฆฌ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฆ, ์ปดํฉํธํ NumberBox/๊ฐ๋จํ ์ซ์๋ง ์ ๋ ฅํ๊ธฐ๋ฅผ ์ํ๋ ์๋๋ฆฌ์ค์ ๋๋ค. ๋๋ ๊ณ์ฐ๊ธฐ ์ง์์ด ๊ทธ๊ฒ์ ๋นํ์ฑํํ๊ธฐ ์ํ API๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๊ธด ์๋ฆฌ ํ์์ ํ ์คํธ์ ๋ํด ๊ฑฑ์ ํ๊ฑฐ๋ ์ต์ ๊ณต๊ฐ ์ ์ฝ์ ๊นจ๋ ๋ฐ ์ ๊ฒฝ ์ธ ํ์๊ฐ ์์ต๋๋ค. , "#" ๋๋ "์: 2"์ ๊ฐ์ ๊ฒฝ์ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
@xyzzer , ์ด ๋ฌธ์ ๋ฅผ ์ ๊ธฐํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ์ฌ์ฉ์ ๊ฒฝํ์ธ์ง ๋จผ์ ํ์ธํ๊ณ ๊ฑฐ๊ธฐ์์ ๊ตฌํ์ ํ์ ํ ์ ์์ต๋๋ค! ์ํํ ์ ์๋ ๊ธฐ์ ์ ์ ํ์ผ๋ก ์ธํด _right_ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ํ ๊ฒ์์ ์ ํํ ํ์๊ฐ ์์ต๋๋ค. :ํธ์ํจ:
ํ์ค TextBox์ ๋ ๋ฆฝ์ ์ผ๋ก ์ด๋ฌํ ๊ธฐ๋ฅ์ ํตํฉํ๋ NumberBox ์ปจํธ๋กค์ ์ฌ์ฉํ์๊ฒ ์ต๋๊น, ์๋๋ฉด API ๋๋ InputScope๋ฅผ ํตํด ํ์ฑํํ ์ ์๋ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ผ๋ก ์ด๋ฌํ ๊ธฐ๋ฅ์ TextBox์ ๊ตฝ๊ณ ์ถ์ผ์ญ๋๊น?
( @sonnemaf , @ArchieCoder , @robloo , @mdtauk , @adrientetar ๋ฐ @xyzzer )
์ด ๋ชจ๋ ๊ฒ์ TextBox ์ปจํธ๋กค์ ๋ฃ๋ ๊ฒ์ ์ค์ํ ๋ณํ์ ๋๋ค.
์ ๋ ฅํ ๋ฌธ์์ ๋ํ ์ ํจ์ฑ ๊ฒ์ฌ์ ๋๋ค.
InputScope์ ํจ๊ป ์ฌ๋ฐ๋ฅธ ํค๋ณด๋ ๋ ์ด์์ ์ฌ์ฉ
๋ค์ํ ๋ง์ฐ์ค ๋์.
FabricWeb ๋ฒ์ ์์์ ๊ฐ์ด ์คํผ๋ ๋ฒํผ์ ํ์ํ๋ ๊ธฐ๋ฅ.
ํ์ฌ ์ฑ์์ TextBox๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋์๊ฒ ์ํฅ์ ์ฃผ์ง ์๊ณ TextBox ์ ํ์ ์ ์ํ๋ ๋์ ์ด๊ฑฐํ๊ณผ ํจ๊ป ์ด๋ฌํ ๋ชจ๋ ๊ฒ์ ์ถ๊ฐํ ์ ์๋ค๋ฉด ์ข์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฒํผ์ฒ๋ผ ์๋ํ๋ ๊ฒ์์ด๋ ๋ฌ๋ ฅ์ ๋ํ๋ผ ์ ์๋ ์์ด์ฝ๊ณผ ๊ฐ์ ๋ค๋ฅธ TextBox ๋์์ ๊ฒฐํฉํ๋ ๊ฒ์ ๊ณ ๋ คํ ์๋ ์์ต๋๋ค. ์์ ์๋ ํ ์คํธ์ ์ ๋ ฅํ ๋ ์๋ฆฌ ํ์์ ํ ์คํธ ์คํ์ผ๋ก "http://"๋ฅผ ํ์ํ๋ IP ์ฃผ์ ๋๋ URL๊ณผ ๊ฐ์ ํญ๋ชฉ์ ๋ํ ๋ง์คํฌ์ ๋๋ค.
FabricWeb์ TextFields์ ํจ๊ป ๋งค์ฐ ๋ค์ํฉ๋๋ค.
https://developer.microsoft.com/en-us/fabric#/controls/web/textfield
https://developer.microsoft.com/en-us/fabric#/controls/web/spinbutton
์ด๋ฌํ ๋ชจ๋ ๊ธฐ๋ฅ์ TextBox ์ปจํธ๋กค์ ๊ตฝ๋ ๋์ ๊ณ ์ ํ NumberBox ์ปจํธ๋กค์ ์ฌ์ฉํ๊ฒ ์ต๋๋ค(์ ๋ ฅ ๋ชจ๋ "๋น๋ฐ๋ฒํธ"๊ฐ ์๋ TextBox๊ฐ ์๋ PasswordBox ์ปจํธ๋กค๋ ์๋ ๊ฒ๊ณผ ์ ์ฌ).
NumberBox ์ปจํธ๋กค์ ์๋ฅผ ๋ค์ด IP ์ฃผ์์ ๋ํ ๋จ์ํ ์ ๋ ฅ ํ๋ ๊ทธ ์ด์์ ๋๋ค. ๊ณ ์ ํ ์ ๊ทผ์ฑ/๊ณ ์ ํ ์คํฌ๋กค ๋ฐ ๋๊ธฐ ๊ธฐ๋ฅ, ๊ณ์ฐ๊ธฐ ์ง์ ๋ฑ์ด ์ ๊ณต๋ฉ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ด ์ง๊ธ๊น์ง ์ผ๋ฐ์ ์ผ๋ก TextBox๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์๊ณผ ์๋นํ ๊ตฌ๋ณ๋ฉ๋๋ค(๊ทธ๋ฃน์ ํํ ์ด๋ฆ์ ์ง์ ํ๋ ๊ฒ์ฒ๋ผ ๊ฐ๋จํ ๊ฒฝ์ฐ). ๋ฐ์ดํฐ). ๊ทธ๋ฆฌ๊ณ NumberBox ์ปจํธ๋กค์ ๋ํด ๋ ๋ง์ ํน์ ๊ธฐ๋ฅ/์๊ตฌ ์ฌํญ์ด ์ ์๋จ์ ๋ฐ๋ผ NumberBox์ TextBox๋ฅผ ํ๋ฅญํ๊ณ ๊น๋ํ๊ฒ ๋ถ๋ฆฌํ ์ ์์ต๋๋ค.
ํด๋น ์ฐฝ์ ๋ฌธ์ ๋ฐ ์ฑ xaml ๋ ์ด์์์๋ ํ์๋ฉ๋๋ค(์: ์ ๋ ฅ ๋ชจ๋๋ฅผ ์ง์ ํ๋ ์์ฑ ์ค ํ๋๊ฐ ํฌํจ๋ ์ฌ๋ฌ ์์ฑ์ด ์๋ TextBox๋ณด๋ค NumberBox๋ฅผ ๋ ์ฝ๊ฒ ๊ฐ์งํ ์ ์์). ์ซ์ ์ ๋ ฅ ๊ธฐ๋ฅ์ ๋ํ TextBox ๋ฌธ์๋ฅผ ์ฝ๋ ๋์ ํด๋น ๋ถ๋ถ์ ํน์ NumberBox ์ ์ด ๋ฌธ์(์ค๋๋ PasswordBox์ ๋ง์ฐฌ๊ฐ์ง๋ก)์์ ํ๋ฅญํ๊ณ ๊น๋ํฉ๋๋ค.
์ปจํธ๋กค์ ๋ชจ์๊ณผ ๊ด๋ จํ์ฌ ๋จ์/์ ๋ฏธ์ฌ๋ ๊ฐ ์์ฒด์ ๊ตฌ๋ณ๋๋๋ก ๋ ์์ ํฌ๊ธฐ/์ฑ๋๊ฐ ๋ฎ์ ์์์ผ๋ก ์์ ํ์๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ง์ฐ์ค๊ฐ ์ปจํธ๋กค ์๋ก ์ด๋ํ๋ฉด ์/์๋ ํ์ดํ๊ฐ ์ฅ์น ๋์ ํ์ด๋์ธ๋ ์ ์์ต๋๋ค.
๋์์ figma.com์ ์ซ์ ์ปจํธ๋กค์ ๋๋ค. ์ฅ์น ์๋ก ๋ง์ฐ์ค๋ฅผ ๊ฐ์ ธ๊ฐ ๋ ํด๋ฆญ+์ผ์ชฝ/์ค๋ฅธ์ชฝ์ผ๋ก ๋์ด ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
์ผ์ชฝ/์ค๋ฅธ์ชฝ์ ์/์๋๋ณด๋ค ๋ง์ฐ์ค๋ฅผ ์ผ์ชฝ/์ค๋ฅธ์ชฝ์ผ๋ก ์์ง์ด๋ ๊ฒ์ด ๋ ์ฝ๊ธฐ ๋๋ฌธ์ ํฅ๋ฏธ๋กญ์ต๋๋ค(์๋ชฉ์ ๋ค ํ์๊ฐ ์์ต๋๋ค).
๋ค๋ฅธ ๊ฒ๋ค:
@adrientetar ์ปจํธ๋กค ๋ด๋ถ์ ๋จ์ ํ์๋ฅผ ๋ฃ์ผ๋ฉด ์ถ๊ฐ ๋ฌธ์ ๊ฐ ๋ง์ด ๋ฐ์ํฉ๋๋ค.
ํค๋, ์ค๋ช ๋๋ ๋ณ๋์ TextBlock์ ์ด๊ฒ์ ๋ฃ์ผ๋ฉด ๋ชจ๋ ํผํ ์ ์์ต๋๋ค.
Value ์์ฑ์ด ์๋ ๋ณ๋์ NumberBox ์ปจํธ๋กค์ ์ฌ์ฉํ๊ณ Text ์์ฑ์ด ์๋ ์๋ ์์ต๋๋ค. Value๋ Double์ด์ด์ผ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ(x:Bind)ํ ์ ์์ต๋๋ค. Decimal ๋ฐ์ดํฐ ์ ํ๋ ์ง์ํด์ผ ํ๋์ง, ์ด๋ป๊ฒ ์ง์ํด์ผ ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
nullable ์ซ์์ ๋ํ ์ง์์ ๋ด๊ฐ ์๊ฐํ๋ MUST์
๋๋ค(@xyzzer์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค). Value ์์ฑ์ Nullable์ด์ด์ผ ํฉ๋๋ค.
๊ตฌ์ฑ์๋ ์ด์ ์ด ์๊ณ ๋ฒํธ ๋งค๊ธฐ๊ธฐ์ ๋ํ ์ฒจ๋ถ๋ ๋์์ด ์๋ ๋ฐ๋ฉด
๋ชจ๋๋ฅผ ๊ตฌํํ๊ณ TextBox์ ์ฒจ๋ถํ ์ ์์ต๋๋ค.
๋ถํ์ํ๊ฒ ๋ณต์กํ๊ณ ์ ํ์ ์
๋๋ค.
๊ตฌํ๊ณผ ๊ด๋ จํ์ฌ ๋ถ๋ชํ ์ ์๋ ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ค ์ผ๋ถ๋
์ ๊ทผ์ฑ. ์ผ๋ถ ์ ๊ทผ์ฑ ํจํด์ ์ง์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํน์ ์ธํฐํ์ด์ค๋ฅผ TextBox์ ๊ตฌํํด์ผ ํฉ๋๋ค.
TextBox๊ฐ ์ซ์ ์์ ๋ชจ๋์ ์์ง ์์ผ๋ฉด ํผ๋์ค๋ฌ์ธ ์ ์์ต๋๋ค.
2019๋
5์ 20์ผ ์์์ผ ์ค์ 2:33 Fons Sonnemans [email protected]
์ผ๋ค:
nullable ์ซ์์ ๋ํ ์ง์์ ๋ด๊ฐ ์๊ฐํ๋ ํ์ ์ฌํญ์ ๋๋ค(@xyzzer์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
https://github.com/xyzzer ). Value ์์ฑ์ Nullable์ด์ด์ผ ํฉ๋๋ค.
๋ฐ์ดํฐ ํ์. ๋ฐ์ธ๋ฉํ ๋ ๋ฐ์ธ๋ฉ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ํ์คํ์ง ์์ต๋๋ค.
nullable์ด ์๋ ๊ฐ.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/microsoft/microsoft-ui-xaml/issues/483?email_source=notifications&email_token=AANMBMBGVQ36CDPQO6CWKLPWJV55A5CNFSM4HA4PBNKYY3PNVWWK3TUL52HS4DFVREWSG43VMVBWJ63
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AANMBMBTHT2UXOAGRTEDF7LPWJV55ANCNFSM4HA4PBNA
.
( @sonnemaf , @ArchieCoder , @robloo , @mdtauk , @adrientetar , @xyzzer ๋ฐ @Felix-Dev )
๋ฌธ์์ด์ ์ซ์๋ฅผ ์ถ๊ฐํ ์ ์์ผ๋ฏ๋ก ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ํ์์ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ํ ์ฐ์ฐ์๋ฅผ ํ๊ฐํ๊ณ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
๊ณ์ฐํ ์ ์๋ ๊ฒฝ์ฐ ํ์๋๋ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์ํฉ๋๊น? ํ์ ํ ์ ์์ต๋๋ค.
๋ง์คํน์ ์ ์ฉํ์ง๋ง URL ๋ฐ ์ด๋ฉ์ผ ์ ๋ ฅ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ ์คํธ ์์ ์์ฒด์ ๋ด์ฅ๋์ด์ผ ํฉ๋๋ค. NumberBox๋ ์ ํ๋ฒํธ, IP ๋ฑ์ด ๋ ๊ฒ์ ๋๋ค.
์ ํ๋ฒํธ๋ IP์ NumberBox๋ฅผ ์ฌ์ฉํด์๋ ์ ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ฒ์ TextBox์ ๋ํ ๊ฐ๋จํ ๋ง์คํน/ํํฐ๋ง ํ์ฅ๊ณผ ๋น์ทํฉ๋๋ค. NumberBox๋ ๋จ์ผ ๊ฐ์ ์
๋ ฅํ๋ ๋ฐ ์ฌ์ฉํ๋ ค๋ ๊ฒ์
๋๋ค.
์๋ง๋ ํตํ ์์ ์ปจํธ๋กค์ ๊ฐ์ง ๊ฐ๋ฅ์ฑ์ด ์์ง๋ง TB ๋๋ NB์ ๋ค๋ฅธ ๋ณ๋์ ์ปจํธ๋กค์ด ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@xyzzer ๋ชจ๋ ์ข ๋ฅ์ ์ซ์ ์ ๋ ฅ์ ๋ํด NumberBox๋ฅผ ๋ ์ ์ฐํ๊ฒ ๋ง๋๋ ๊ฒ์ ์ข์ ์๊ฐ์ธ ๊ฒ ๊ฐ์ต๋๋ค. TextBox ์ปจํธ๋กค์์ ํ์๋ ์ ์์ผ๋ฉฐ ํด๋น ์ปจํธ๋กค์๋ Mask ์์ฑ๊ณผ ๊ธฐํ ๋์ ์์ฑ์ด ์์ ์ ์์ต๋๋ค.
NumberBox์ ์์ฑ ์ค ์ผ๋ถ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
TextBox์ ์ถ๊ฐํ ์ ์๋ ์์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด ์ด๋ฏธ์ง๋ Fabric UI TextField์ ์ด๋ฏธ์ง์ด๋ฉฐ ์ด ๋ชจ๋ ๋ค์ํ ์ํ๋ฅผ ์ง์ํฉ๋๋ค. ๊ฐ๋ฅํ ๊ฒฝ์ฐ Fluent WinUI 3.0 ์ปจํธ๋กค์ ํจ๋ฆฌํฐ๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋ชฉํ๋ก ํด์ผ ํฉ๋๋ค.
Fabric UI Spinner ๋ฒํผ์ ํฐ์นํ๊ธฐ์๋ ๋๋ฌด ์๊ธฐ ๋๋ฌธ์ ์์๋ ๋ฒํผ์ด ์๋ก ๊ฒน์ณ์ง์ง ์๊ณ ๋๋ํ ์๋๋ก ํ์์ ๋ค๋ฅด๊ฒ ์ง์ ํฉ๋๋ค.
๋์๊ฒ ์ ํจ์ฑ ๊ฒ์ฌ๋ ํ์์ด๋ฉฐ ๋ง์คํน์ ์์ผ๋ฉด ์ข์ต๋๋ค. ๋๋ ๋ง์คํน์ ์ข์ํ์ง ์์๋ค. ๋๋ฌด ๋ฑ๋ฑํฉ๋๋ค.
@rudyhuyn ์ Windows ๊ณ์ฐ๊ธฐ ์ ์ฅ์์์ ์ข์ ๊ธฐ๋ฅ์ ์ ์ํ์ต๋๋ค. @mdtauk์ด(๊ฐ) ๋๊ธ ์
๋ ์ง/์๊ฐ/๋ฌ๋ ฅ ์ ํ๊ธฐ์ ์ ์ฌํ NumberBox์์ ๊ณ์ฐ๊ธฐ ํ์ ์ ์ด ์ ์์ต๋๋ค.
@xyzzer ๊ฐ ์์์ ๋งํ ๊ฒ๊ณผ ์ ์ฌํฉ๋๋ค. ์ซ์์ ์ผ๋ จ์ ์ซ์๋ฅผ ํฌํจํ๋ ๋ฌธ์์ด ์ฌ์ด์๋ ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
์ค๋ช
๋ ์ฐจ์ด์ ์ ๊ฐ์ฅ ์ ๋ค์ ๊ฒ์ ์ซ์์ ๋ํด ๊ณฑ์
๊ณผ ๋๋์
์ฐ์ฐ์ ์ํํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ์ซ์์ ์ ๋ฐ์ ์์ฒญํ๊ณ 2๋ก ๋๋ ์ ์์ต๋๋ค. ์ฐํธ ๋ฒํธ์ ์ ๋ฐ์ด๋ "์ ํ ๋ฒํธ"๋ฅผ ์๊ตฌํ๊ณ ์๋ฏธ์๋ ๊ฒ์ ์ป์ ์๋ ์์ต๋๋ค.
์ซ์๋ก ๊ตฌ์ฑ๋ ๋ค๋ฅธ ๊ฐ์ ์บก์ฒํ๋ ๊ธฐ๋ฅ๊ณผ ์ํ์ ๊ธฐ๋ฅ์ด ์๋ ํน์ NumberBox
๋ฅผ ํผํฉํ๋ฉด ๋ค๋ฅธ ๋ฌธ์ ๋ ๋ฐ์ํ ์ ์์ต๋๋ค.
"์ ํ ๋ฒํธ"๋ ์ ํ 0(๋๋ ๋ํ๊ธฐ ๊ธฐํธ)์ผ๋ก ์์ํ ์ ์์ผ๋ฉฐ ๊ฑฐ๊ธฐ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. _์ซ์_์ ๊ฒฝ์ฐ์๋ ์ ๊ฑฐ๋์ง ์์ผ๋ฉฐ ์ ๊ฑฐ๋ฉ๋๋ค.
"์ ํ ๋ฒํธ"๋ ์ข
์ข
๋๊ดํธ์ ํ์ดํ์ผ๋ก ํ์์ด ์ง์ ๋ฉ๋๋ค. ์ํ์ ์ฐ์ฐ์ผ๋ก ์ฒ๋ฆฌ๋๋ฉด ๊ณฑ์
๊ณผ ๋บ์
์ด ํ์ํ ๊ฒ์ผ๋ก ์ฝ๊ฒ ํด์๋ ์ ์์ต๋๋ค.
TextBox
์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ง์คํน์ ํ์ฉํ๊ณ ์
๋ ฅ ํ์์ ์ง์ ํ๋ฉด NumberBox
์ TextBox
์ ๊ฐ๊ฐ์ ์ฌ์ฉํด์ผ ํ๋ ์๊ธฐ์ ํผ๋์ ์ผ์ผํฌ ์ํ์ด ์์ต๋๋ค.
๊ฐ๋จํ ์ ํจ์ฑ ๊ฒ์ฌ๋ ํ์ ์ฌํญ์ด์ง๋ง ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ํ๋ซํผ์ ์ฌ ๋ ์ถฉ๋ํ๋ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐฉ๋ฒ์ด ์๊ฑฐ๋ ๊ฐ๋ฐ์๊ฐ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ฌ๋ฌ ์์น๋ก ํผ๋จ๋ฆฌ๋๋ก ์ฝ๊ฒ ๋๋ผ ์ ์๋ ๋ฐฉ๋ฒ์ด ๋ฐ์ํ์ง ์๋๋ก ์ฃผ์ํด์ผ ํฉ๋๋ค. .
๋ค์ ์์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ ์งํฉ๋๋ค.
๋ณ๋๋ก ํ์ํด์ผ ํฉ๋๋ค.
๋ง์คํฌ๋ ํ์ํ ๊ฒ์ ๋ช ํํ ํ๊ธฐ ์ํด ์๊ฐ์ ์ดํฌ๋์ค๊ฐ ํ์ํ์ง๋ง ๊ธฐ๋ณธ ๊ณ์ฐ ์ ๋ ฅ์ ๋ง์คํฌ๋ ์ ๋ ฅ๊ณผ ํจ๊ป ์ฌ์ฉ๋์ง ์์ต๋๋ค.
Fabric ์น ํ ์คํธ ์ปจํธ๋กค์ ์ด๋ฅผ ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ๋ฌผ๋ก NumberBox์ ๋ฒ์๋ ๊ธฐ๋ณธ TextBox ์ปจํธ๋กค์ ๋ํ ์ผ๋ฐ์ ์ธ ๋ง์ถค ๋ฐ ๋ง๋ฌด๋ฆฌ ๊ฐ์ ์ฌํญ๊ณผ ๋ณ๊ฐ์ ๋๋ค.
์คํผ๋ ๋ฒํผ(๋ฐ ์ต์ ์ธ ๊ณ์ฐ๊ธฐ ํ๋ผ์ด์์)์ NumberBox์ ๊ด๋ จ๋ ์ ์ผํ ์๊ฐ์ ์์์ ๋๋ค.
์์ฑ์ ๊ฒฝ์ฐ ๊ฐ ๋ณ๊ฒฝ์ ์ํด ํค๋ณด๋ ์/์๋ ๋ฒํผ์ด ํ์ฑํ๋์ด ์๋ ๊ฒฝ์ฐ ํค๋ฅผ ๋๋ฅผ ๋ ์ฆ๊ฐ ๋๋ ๊ฐ์ํ ์ ๋๋ฅผ ์ ํํ ์ ์๋๋ก ๋จ๊ณ ๊ฐ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
@mdtauk , ๋๋ Step ๊ฐ์ ์ข์ํ์ง๋ง ํค ๋๋ฆ๋ฟ๋ง ์๋๋ผ. ์คํฌ๋กค ๋ฐ ์/์๋ ๋ฒํผ์๋ ์์ต๋๋ค.
@sonnemaf ๋ฌผ๋ก , Step์ ๋ง์ฐ์ค ํ ํฑ, ํค ๋๋ฆ ๋๋ ํค ๋ค์ด๊ณผ ๊ฐ์ ๋ฐ์ด๋๋ฆฌ์ ์ข์ต๋๋ค. ์๋ง๋ ์์์์ ๋ฉ์ด์ง๋ ๊ฑฐ๋ฆฌ๊ฐ ๋จ๊ณ ์์ ์ฆ๊ฐ์ํฌ ์ ์์ต๋๊น?
๊ทธ๋์ StepMinimum ๊ณผ StepMaximum์ ์๋ง๋?
๊ทธ๋์ StepMinimum๊ณผ StepMaximum์ ์๋ง๋?
๋๋ ๊ทธ ๊ฐ์น๊ฐ ๋ฌด์๊ณผ ๊ด๋ จ์ด ์๋์ง ๋๋ ๊ทธ๊ฒ์ ๋ํด ๋ฌด์์ ๊ธฐ๋ํด์ผ ํ๋์ง ์ ํ ๋ชจ๋ฆ
๋๋ค.
"Step"์ ๋ชฉ์ ์ด ์ฆ๋ถ์ ์ ์ํ๋ ๊ฒ์ด๋ผ๋ฉด "Increment"๋ผ๊ณ ๋ถ๋ฆ
๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด Max:100 Min:0 Increment:10
์์ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 ๊ฐ๋ง ์ง์ ํ ์ ์์ต๋๋ค.
๋๋๊ทธํ ๊ฑฐ๋ฆฌ์ ๋ฐ๋ผ ๋จ๊ณ/์ฆ๊ฐ๋์ด ๋ฌ๋ผ์ง๋ฉด ์์ธกํ ์ ์๋ ๊ฐ ๋ณ๊ฒฝ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด ์ปจํธ๋กค์ ๋ชฉ์ ์ด ์ซ์ ๊ฐ์ ๋ ์ฝ๊ฒ ์ง์ ํ ์ ์๋๋ก ํ๋ ๊ฒ์ด๋ผ๋ฉด ๊ฐ์ด ๋ค์ํ ์์ผ๋ก ๋ณ๊ฒฝ๋๊ธฐ ์์ํ๋ฉด ์ฝ๊ฒ ๋ง๋ค ์ ์๋ ์ ์ฉ ์ปจํธ๋กค์ ๊ฐ๋ ๊ธฐ๋ณธ ๋ชฉํ๋ฅผ ๋ฌด์ฐ๋ฅด๋ ๋งค์ฐ ์ค๋ง์ค๋ฌ์ธ ๊ฒ์ ๋๋ค.
@mrlacey ์ฌ๋ผ์ด๋ ๋ฐ ์งํ๋ฅ ํ์์ค์ ๋ํด ๋ช ๋ช ๋ ์์ฑ์ด๋ฏ๋ก Step์ ์ฌ์ฉํ์ง๋ง ์ํ๋ ๊ฒฝ์ฐ ์ฆ๋ถ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฆ๊ฐ๊ฐ ๊ฐ์ ์ฆ๊ฐ์ ํผ๋๋์ง ์๋ ํ ๊ฐ์ ์ค๋ฅด๋ฝ๋ด๋ฆฌ๋ฝํฉ๋๋ค.
๊ฐ์ ๋์ด๊ฑฐ๋ ๋ฎ์ถ๊ธฐ ์ํด ์ ๋๋ ์๋๋ก ํด๋ฆญํ๊ณ ๋๋๊ทธํ๋ ์ ์์ด ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๊ฐ์ด ๋ ๋นจ๋ฆฌ ๋ณ๊ฒฝ๋๊ธฐ๋ฅผ ๊ธฐ๋ํ๋ฉด ๋ ์ ๋๋ ์๋๋ก ๋๋๊ทธํ ๋ค์ Stap Min ๋ฐ Max ๊ฐ์ด ์์ผ๋ฉด ๊ฐ๋ฐ์๊ฐ ๋ธํ๊ฐ ๋ณ๊ฒฝ๋ ๋ ์ด๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์์ ๋๊ธฐ ๊ฑฐ๋ฆฌ๋ 0.1 ๋๋ 1 ์ฉ ์ฆ๊ฐํ ์ ์์ง๋ง ๋ ๋๋ฉด ์๋ฅผ ๋ค์ด 5 ๋๋ 10 ์ฉ ๋ณํ ์ ์์ต๋๋ค.
๋๋๊ทธ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ ๋ณ๊ฒฝ ์๋๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ค๊ณ ๋งํ๋ ๊ฒ์ด ์๋๋๋ค. ๋จ์ง ๊ทธ๊ฒ์ด ์์ฐ์ค๋ฝ๊ฒ ๋๊ปด์ง๊ณ ์ฌ์ฉ์์๊ฒ ์์ ๊ฐ๊ณผ ์ ์ด๋ ฅ์ ์ ๊ณตํ๋ค๋ฉด ๋์์ด ๋ ์ ์๋ค๋ ์์ด๋์ด์ผ ๋ฟ์ ๋๋ค.
@KevinTXY ๊ฐ ์ด ์ปจํธ๋กค์ ๊ฐ๋ฐ์๋ก ์ ์ ํฉ๋ฅํ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์์ ์๊ตฌ ์ฌํญ ๋ํ๋ฅผ ๊ณ์ ์งํํ๊ณ PR์ ๋ํ API/์์ ํน์ ๋ํ๋ฅผ ์์ํฉ๋๋ค.
์ฌ์ ์์ฑ์ ์ฐธ์ฌํ๋๋ก ๊ฒฉ๋ คํด ์ฃผ์ญ์์ค.
TeachingTip์ ์ฌ์ ์ ์์ฑ๋ ์ฌ์์ด ์ด๋ป๊ฒ ์๊ฒผ๋์ง์ ๋ํ ์์ ํ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์์ ๋๋ค. ์ฃผ์ ๊ฐ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํ๋ฅญํ ์์ด๋์ด, ๋๋ ์ด ๋ชจ๋ ๊ฒ์ด ์ด๋๋ก ๊ฐ๋์ง ์ข์ํฉ๋๋ค. ๋ด ๋ ์ผํธ ์ถ๊ฐ:
๋ ๋ง์ ์์ด๋์ด๊ฐ ๋ค๋ฐ๋ฅผ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ๋๋ ์ฌ์์ ์ฝ๊ธฐ๋ฅผ ๊ณ ๋ํฉ๋๋ค!
( @mdtauk , @xyzzer , @mrlacey , @sonnemaf , @robloo , @Felix-Dev , @adrientetar , @ArchieCoder )
๋๋ ๊ฐ๊ฐ์ ๋ํ API์ ์์ ๋ก ์์ฑ๋ ์ฌ์ / PR ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ธฐ๋ณธ ๋ฏธ๋ฆฌ ์ ์๋ ์ ํ(์์ง ์งํ ์ค)์ ๋ํ ์ด๊ฑฐํ๊ณผ ์ค์ ๋ ๊ฒฝ์ฐ ๋ฏธ๋ฆฌ ์ ์๋ ์ ํ์ ์ฌ์ ์ํ๋ ์ฌ์ฉ์ ์ง์ ์์ ์์ฑ์ ์ฌ์ฉํ์ฌ ์ฌ์์ ๋ง๊ฒ ์์ ์ง์ ์ ์ฒ๋ฆฌํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ํจ์ฑ ๊ฒ์ฌ๋ ํ์ ํญ๋ชฉ์ผ๋ก ํ์๋ฉ๋๋ค. ๋ง์คํน ๋ฐ ๊ธฐํ ์ง์ ์์ฑ์ ๋ฌด๋ฃ๋ก ์ป๊ธฐ ์ํด TextBox์์ ํ์๋๋๋ก ์ด ์ปจํธ๋กค์ ๊ท์ ํ์ต๋๋ค.
@mrlacey ์ ์ฐ๋ ค๋ก ์ฌ์ฉ์ ์ง์ ์ซ์ ๋ฌธ์์ด ์ ๋ ฅ ์๋๋ฆฌ์ค๋ฅผ ํ์ฑํํ๊ธฐ ์ํด ์ฌ์ฉ์ ์ง์ ํ์ ๋ฌธ์์ด๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ์ ํ 0 ์ ๊ฑฐ๋ฅผ ํ์ฑํ/๋นํ์ฑํํ๋ API๋ฅผ ์ถ๊ฐํ์ต๋๋ค(๊ตญ์ ์ ํ ๋ฒํธ ๋ฐ IP ์ฃผ์๋ ์ด๋ฏธ ๊ฐ๋ฅํ ๊ธฐ๋ณธ ํ์ ์ ํ ๋ชฉ๋ก์์).
์ด๊ฒ์ ๊ณ์ฐ๊ธฐ ์ง์์ ํ์ฑํ/๋นํ์ฑํํ๋ ๊ธฐ๋ฅ๊ณผ ํจ๊ป ์ซ์ ๊ฐ/๋ฌธ์์ด์ ๋ํด ๊ฒฝ๋์ผ ์ ์์ง๋ง ์ถฉ๋ถํ ๊ณ์ฐ ๋ฐ ์ฌ์ฉ์ ์ง์ ์ง์์ ์ ๊ณตํ ์ ์๋ ์ปจํธ๋กค์ ๋ํ ๊ต์ฐจ์ ์ ์ ๊ณตํฉ๋๋ค. ์์ ์ ๊ฐ๊ฒฐํจ์ด ์ด๋ฅผ ๊ฐ์กฐํ๋ค๊ณ ์๊ฐํ์ง๋ง ์ด๊ฒ์ด ์ฅ๋ ์ ์ด๋ฅผ ์ฌ์ฉํ๊ธฐ ๋ ๋ณต์กํ๊ฒ ๋ง๋ค ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ ์ฌ๋์ ์๊ฒฌ์ ๋ฃ๊ณ ์ถ์ต๋๋ค.
@sonnemaf ์์ด์ฝ > ํ์ ๊ณ์ฐ๊ธฐ ์์ ์ ์ฐธ์ ํจ๊ณผ ์ง๊ด์ฑ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋์๊ฒ ์ด๊ฒ์ CalendarDatePicker์ ๊ฐ๋ ์์ ์๋ฅผ ๋ค์ด ํ์๋์์ผ๋ฉฐ ์ฌ๊ธฐ ๋ชจ๋ ์ฌ๋์ด V1์ ๋ํด ๊ณ ๋ คํด์ผ ํ๋ค๋ ๊ฐ๋ ฅํ ํธ์๊ฐ ์๋ ํ V2 ๊ธฐ๋ฅ์ ๋ํ ํ๋ฅญํ ๊ณ ๋ ค ์ฌํญ์ด ๋ ์ ์์ต๋๊น?
๊ณ์ฐ๊ธฐ ์คํ ์์ค ๋ ธ๋ ฅ๊ณผ ์กฐ์ ์ด ์๋ ๊ฒฝ์ฐ ํ์ ๊ณ์ฐ๊ธฐ๊ฐ ์๋ฏธ๊ฐ ์์ ์ ์์ต๋๋ค. ๊ณ์ฐ๊ธฐ ํ๋ผ์ด์์์ ๋ชจ์๊ณผ ๊ทธ ๋ค์ ์๋ ์์ง์ ์ผ๊ด์ฑ์ ์ํด ๋ ๋ค.
์ฌ๊ธฐ๊ฐ ์ด ์ด๋ฏธ์ง๋ฅผ ๊ฒ์ํ๋ ๊ณณ์ธ์ง ํ์คํ์ง ์์ง๋ง ์ฌ์์ ์ค์ํ๋ ๋ค์ํ ์ํ์ ๋ํ ๋์์ธ์ด ์์ต๋๋ค.
์ด๋ฏธ์ง๋ 200% ์ค์ผ์ผ์
๋๋ค.
@mdtauk ๋ชจํ์ ๋ชฉ์ ์ ๋ฌด์์ ๋๊น?
๊ฐ ์ด๋ฏธ์ง๋ ์ด๋ค ์ํ๋ฅผ ๋ณด์ฌ์ฃผ๋ ค๊ณ ํฉ๋๊น? ๋น์ ์ด ์ด๊ฒ์ ๋ช ํํ ํ์ง ์์ผ๋ฉด ์ฐ๋ฆฌ๋ ๋น์ ๊ณผ ๋ค๋ฅธ ๊ฐ์ ์ ํ ์ ์์ต๋๋ค.
ํฝ์ ์๋ฒฝํ ์ฐธ์กฐ๋ฅผ ์ํ ๊ฒ์ ๋๊น?
์ด๋ฏธ์ง์์ ํ๋ซํผ์ด๋ ๊ธฐ๋ณธ ์ปจํธ๋กค์ ๊ธฐ๋ณธ๊ฐ๊ณผ ๋ค๋ฅธ ๋ถ๋ถ์ ํธ์ถํ์ฌ ๋ฌด์์ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋์ง(์๋ ๊ฒฝ์ฐ) ๋ช ํํ๊ฒ ํ ์ ์์ต๋๊น?
@mrlacey ๋์์ด ๋๋ค๋ฉด ๋ ์์ธํ ๋ถ์ํ ์ ์์๊น์? ์ฌ์์์ ์ธ๊ธ๋ ๋ช ๊ฐ์ง ์๋ฅผ ์ค๋ช ํ๋ ค๊ณ ํ์ต๋๋ค.
๊ทธ ๋ชฉ์ ์ ์ ๋์ฌ, ์ ๋ฏธ์ฌ, ๋ง์คํฌ, ์์๋ ๋ฒํผ๊ณผ ๊ฐ์ด ์ ์๋ ๋ค์ํ ์ปจํธ๋กค ์์๋ก ์ด๋ฌํ ์ปจํธ๋กค์ด ์ด๋ป๊ฒ ๋ณด์ด๋์ง ์ค๋ช ํ๋ ๊ฒ์ ๋๋ค. FabricWeb ์ปจํธ๋กค ๋์์ธ์์ ์ถ์ ๋์ง๋ง FocusReveal๊ณผ ๊ฐ์ XAML ์์์ ๋ฒํผ์ ์ปจํธ๋กค ํฌ๊ธฐ ์กฐ์ ์ ์ฌ์ฉํฉ๋๋ค.
์๋ ํด์ - ์ง์ค - ๋นํ์ฑํ ์ํ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
ํ์ ๊ณ์ฐ๊ธฐ๋ V2์ ์ข์ ๊ธฐ๋ฅ์ด ๋ ๊ฒ์ ๋๋ค.
์ ์๊ฒฌ์ ์ด๋์ ์ฌ๋ ค์ผ ํ ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ฌ์์ ๋ํ PR์ ์์ฑํด์ผ ํฉ๋๊น, ์๋๋ฉด ์ด ํธ์ ๊ณ์ ์ ์๊ฐ์ ์จ๋ ๋ฉ๋๊น?
NumberBoxFormatType์ ์ ์ ๊ฐ์ด ์ ์ฉํฉ๋๊น?
enum NumberBoxFormatType
{
IPAddress,
InternationalTelephone,
Currency,
Integer,
}
ํตํ, ์ญ์ง์ ๊ทธ๋ฃนํ ๊ธฐํธ๋ฅผ ์ง์ ํ๋ ๋ฐ ์ธ์ด ๋ฅผ ์ฌ์ฉํ์๊ฒ ์ต๋๊น?
๋ค์ ์์์ ์ธ์ด๋ nl-NL๋ก ์ค์ ๋ฉ๋๋ค. ์ด๊ฒ์ ์ ๋์ด๊ฐ ์ ๋ก ๊ธฐํธ์ด๊ณ ์์์ ๊ธฐํธ ๋ค์ 2๊ฐ์ ์์์ ์ด ์๋ ์ผํ์ด๋ฉฐ ์ซ์ ๊ทธ๋ฃน์ด ์ ์ด๋ผ๋ ๊ฒ์ ์๋ฏธํฉ๋๊น? ์์ ํตํ๋ ๋ฏธ๊ตญ๊ณผ ๊ฐ์ด ์์ ๋ง์ด๋์ค ๊ธฐํธ๊ฐ ์๊ณ ๊ดํธ๊ฐ ์์ต๋๋ค.
<TextBlock Header="Price"
PlaceholderText="0,00"
FormatType="Currency"
Language="nl-NL" />
Windows์๋ ๋ง์ ์ซ์ ๋ฐ ํตํ ํ์ ์ต์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ด ์ ๋๋ฉด ์ถฉ๋ถํฉ๋๋ค.
Value ์์ฑ์ด ํ์ํ๊ณ ์ด๋ค (์ซ์) ์ ํ์ด ํ์ํฉ๋๊น? ๋๋ ๊ทธ๊ฒ์ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉํ๋ ๋ฐ ์ฌ์ฉํ ๊ฒ์ ๋๋ค. double, decimal ๋๋ int์ฌ์ผ ํฉ๋๋ค. Nullable ์ง์(double?, decimal?, int?)์ด ํ์ํฉ๋๋ค. ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์์๋ TextBox ์ปจํธ๋กค์ Text ์์ฑ์ ์ฌ์ฉํ๊ณ ์ถ์ง ์์ต๋๋ค. Decimal์ ๋ํ ์ง์๋ ํ์ํฉ๋๋ค. double๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค.
<TextBlock Header="Price"
Value="{x:Bind ViewModel.Employee.Salary, Mode=TwoWay}"
PlaceholderText="0.00"
FormatType="Currency"
Language="nl-NL" />
์ง์์ Salary ์์ฑ์ด Nullable์ธ ๊ฒฝ์ฐ
<TextBlock Header="Price"
ValueNullableDecimal="{x:Bind ViewModel.Employee.Salary, Mode=TwoWay}"
PlaceholderText="0.00"
FormatType="Currency"
Language="nl-NL" />
MinValue ๋ฐ MaxValue๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๊ทธ๋ค์ ์ด์ ์ฌ์์์ ์ ์์ด์ง๋ง ์ด๊ฒ์ Double์ด ์๋์ด์ผ ํฉ๋๊น?
@sonnemaf ์ฌ์์ ๋ฐ๋ฅด๋ฉด ์ปจํธ๋กค์ ์ซ์๋ฅผ ์
๋ ฅํ ์ ์๋ ๋ชจ๋ ๊ฒ์ ๋ํ ๊ฒ์ด๋ฏ๋ก "๊ฐ"์ ํ
์คํธ๋ก ์ทจ๊ธํ๊ณ ํ์์ ๋ฐ๋ผ ๋ณํํ๋ ์๋น ์ฝ๋์ ์์กดํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด์์ ์ด์ง๋ ์์ง๋ง long ๋๋ float์ธ Value
์์ฑ์ด ์๋๋ผ๋ ์ฌ์ ํ ๋ณํ์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๋ชจ๋ ์ซ์ ์ ํ์ ๋ํ ์ค๋ฒ๋ก๋๋ณด๋ค ๋ซ์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ US ์ฐํธ ๋ฒํธ, ์ ํ ๋ฒํธ ๋๋ IP ์ฃผ์์ ๊ฐ์ด "์ซ์" ์ ํ์ผ๋ก ๋ณํํ ์ ์๋ ์ปจํธ๋กค์ด ๋์์ธ๋๊ณ ์๋ ํญ๋ชฉ์ด ์์ต๋๋ค. ์ด๋ฌํ ์ข
๋ฅ์ ๊ฐ์ ๊ฒฝ์ฐ ํ
์คํธ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ์ต์์(์ ์ผํ) ์ต์
์ธ ๊ฒ ๊ฐ์ต๋๋ค.
(์ต์ํ ์ด๊ธฐ ๋ฒ์ ์์๋ ์
๋ ฅ๋ ๊ฐ์ ์ก์ธ์คํ๊ณ ํ์ํ ๊ฒฝ์ฐ ๋ณํ๊ธฐ์ ์์กดํ๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ๊ฐ๋จํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ธฐ์ ํดํท์ ์ค๋ ๋์ฐ๋ฏธ(๋๋ ํ์ ํด๋์ค) ๋ชจ์์ ์ํ ์ฅ์๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ํผ๋๋ฐฑ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฉ์ธ ์ปจํธ๋กค์ ํตํฉ๋ฉ๋๋ค.
Language
์์ฑ์ด ํ์ํฉ๋๊น? ์ด๊ฒ์ด UILocale๊ณผ ๊ฐ์ง ์์ ์ด์ ๋ ๋ฌด์์
๋๊น? ์ข์ ์ด์ ๊ฐ ์์ ์ ์์ง๋ง ์ด๊ฒ์ ์ฌ์ฉ์๊ฐ ๊ตฌ์ฑํ ์ ์์ด์ผ ํ๋ฉฐ(OS ์์ค์์) ํน์ ํ์์ ์ง์ ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉด ํ์์ด ๋ค๋ฅธ ๊ณณ์ด๋ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ์ผ์นํ์ง ์์ ๋ ๊ฐ๋ฐ์์๊ฒ ๋ ๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ํ๋. ๋ด ๋จธ๋ฆฌ ๊ผญ๋๊ธฐ์์: ๋๊ตฐ๊ฐ ๋ค๋ฅธ ํ์์ ๊ฐ์ ๋ถ์ฌ๋ฃ์ผ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
@mdtauk ๋ชจํ์ ๋ชฉ์ ์ ๋ฌด์์ ๋๊น?
๊ฐ ์ด๋ฏธ์ง๋ ์ด๋ค ์ํ๋ฅผ ๋ณด์ฌ์ฃผ๋ ค๊ณ ํฉ๋๊น? ๋น์ ์ด ์ด๊ฒ์ ๋ช ํํ ํ์ง ์์ผ๋ฉด ์ฐ๋ฆฌ๋ ๋น์ ๊ณผ ๋ค๋ฅธ ๊ฐ์ ์ ํ ์ ์์ต๋๋ค.
ํฝ์ ์๋ฒฝํ ์ฐธ์กฐ๋ฅผ ์ํ ๊ฒ์ ๋๊น?
์ด๋ฏธ์ง์์ ํ๋ซํผ์ด๋ ๊ธฐ๋ณธ ์ปจํธ๋กค์ ๊ธฐ๋ณธ๊ฐ๊ณผ ๋ค๋ฅธ ๋ถ๋ถ์ ํธ์ถํ์ฌ ๋ฌด์์ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋์ง(์๋ ๊ฒฝ์ฐ) ๋ช ํํ๊ฒ ํ ์ ์์ต๋๊น?
@mrlacey ์ด๊ฒ์ด ๋น์ ์ด ์ํ๋ ์ข
๋ฅ์
๋๊น?
@mdtauk ๋น์ ์ด ๋ณด์ฌ์ฃผ๋ ค๋ ๊ฒ ์ค ์ผ๋ถ๋ฅผ ์ค๋ช ํ๊ธฐ ๋๋ฌธ์ ์กฐ๊ธ ๋ ์ข์ต๋๋ค.
๊ทผ๋ณธ์ ์ธ ์ง๋ฌธ์ ์ฌ์ ํ โโ๋จ์ ์์ต๋๋ค. ์ด๊ฒ์ ๋ณด์ฌ์ฃผ๋ ๋ชฉํ๋ ๋ฌด์์ ๋๊น? ๊ทธ๋ฅ ์์ด๋์ด์ธ๊ฐ์? ๋ค์ํ ์์ด๋์ด๋ฅผ ํ์ํ ํ ์ ํธํ๋ ๋ฒ์ ์ ๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ ์ด๊ฒ์ด ์ต๊ณ /์ ํธ์ ๋๊น?
ํ์ฌ ์ปจํธ๋กค์ ์ํ๋ ์ ์์คํ ์ ์ฒด ์คํ์ผ์ ํ์ํ ์ ์ปจํธ๋กค๊ณผ ๋น๊ตํ๋ค๋ ๊ฒ์ ์ปจํธ๋กค์ ํน์ ํ ๊ฒ์ ์ ํธํ๋ ์ ์์คํ ์ ์ฒด ์คํ์ผ์ ์๋ ๊ฒ๊ณผ ๋ถ๋ฆฌํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์๋ฅผ ๋ค์ด ํ ๋๋ฆฌ์ ํฌ๋ช ๋๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ์ธ๊ธํฉ๋๋ค. ์ด ๋ณ๊ฒฝ ์ฌํญ์ ๋ชจ๋ ์ปจํธ๋กค์ ์ํ ๊ฒ์ ๋๊น, ์๋๋ฉด ์ด ์ปจํธ๋กค์๋ง ์ ์ฉ๋๋ ๊ฒ์ ๋๊น? ๊ทธ๋ฆฌ๊ณ ์ด๋ ์ฃผ์ ์์ต๋๊น?
๋ฒํผ์ ๋ํด ๋ช ์์ ์ธ ํฌ๊ธฐ๋ฅผ ์ง์ ํ๋ ๊ฒ์ ํฌ๊ธฐ๊ฐ ์กฐ์ ๋๋ ์ปจํ ์ด๋์ ๋ฐ๋ผ ํญ์ ๊ท ๋ฑํ๊ฒ ๋ณํ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋์์ธ ๊ตฌ์ฑ ์์์์ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค. ํญ์ ์ ์ฌ๊ฐํ์ด์ด์ผ ํฉ๋๊น? ๋๋ ๋๋น๊ฐ ๊ธฐ๋ณธ ์ปจํธ๋กค ๋์ด์ ๋ฐ๋ผ ๊ณ ์ ๋์ด ์์ต๋๊น?
์ ๋์ฌ์ ์ ๋ฏธ์ฌ์ ๋ํ ๋ฐฐ๊ฒฝ ๋ธ๋ฌ์๊ฐ ์ด๋ป๊ฒ ๊ฒฐ์ ๋ฉ๋๊น? ๊ธฐ์กด ์์คํ ๋ธ๋ฌ์๋ฅผ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํ์ง๋ง ์ด๋ค ๋ธ๋ฌ์์ธ๊ฐ์?
๋ง์คํน์ ์ด ์ฌ์์์ ๋ค๋ฃจ์ง ์์ต๋๋ค. "Masked" ์์ ๊ฐ ํ์ ๋ฌธ์์ด๊ณผ ๊ด๋ จ๋๋๋ก ์๋๋์์ต๋๊น?
๋ง์คํฌ ๋ ์์ ๋ ํ์์ ์ด๋ป๊ฒ ๋์ํฉ๋๊น?
๋๋ ๋น์ ์ด ๋ฒ์ 4 IP ์ฃผ์์ ํญ๋ชฉ์ ๋ณด์ฌ์ฃผ๋ ์๋ผ๊ณ ๊ฐ์ ํ์ง๋ง ๋ชจ๋ ๊ฒ์ด ์ผ๋ง๋ ๊น๋ํ๊ฒ ๋ง๋์ง์ ๋ฐ๋ผ ๊ฑฐ๊ธฐ์ ๋ง์ ๊ฐ์ ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค. ์
๋ ฅํ ์ ์๋ ๋ชจ๋ ๊ฐ์ ๋ฐฐ๊ฒฝ๊ณผ ์ฌ๋ฐฑ์ด ์์ด์ผ ํฉ๋๊น? ํญ์ ํ์๋์ง ์์ผ๋ฉด ์ด๋ป๊ฒ ํฉ๋๊น? ๊ทํ์ ์์ ๊ฐ์ด ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ๊ณต๊ฐ์ ๋ง๊ฒ ์ฝํ
์ธ ๋ฅผ ๋๋ ค์ผ ํฉ๋๊น? ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ๋ณด๋ค ๋์ ์ฝํ
์ธ ๋ฅผ ํจ๋ํ ๋ ์
๋ ฅํ ์ ์๋ ๊ฐ์ ํ ๋น๋ ๊ณต๊ฐ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋ฉ๋๊น?
@mdtauk ๋น์ ์ด ๋ณด์ฌ์ฃผ๋ ค๋ ๊ฒ ์ค ์ผ๋ถ๋ฅผ ์ค๋ช ํ๊ธฐ ๋๋ฌธ์ ์กฐ๊ธ ๋ ์ข์ต๋๋ค.
๊ทผ๋ณธ์ ์ธ ์ง๋ฌธ์ ์ฌ์ ํ โโ๋จ์ ์์ต๋๋ค. ์ด๊ฒ์ ๋ณด์ฌ์ฃผ๋ ๋ชฉํ๋ ๋ฌด์์ ๋๊น? ๊ทธ๋ฅ ์์ด๋์ด์ธ๊ฐ์? ๋ค์ํ ์์ด๋์ด๋ฅผ ํ์ํ ํ ์ ํธํ๋ ๋ฒ์ ์ ๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ ์ด๊ฒ์ด ์ต๊ณ /์ ํธ์ ๋๊น?
ํ์ฌ ์ปจํธ๋กค์ ์ํ๋ ์ ์์คํ ์ ์ฒด ์คํ์ผ์ ํ์ํ ์ ์ปจํธ๋กค๊ณผ ๋น๊ตํ๋ค๋ ๊ฒ์ ์ปจํธ๋กค์ ํน์ ํ ๊ฒ์ ์ ํธํ๋ ์ ์์คํ ์ ์ฒด ์คํ์ผ์ ์๋ ๊ฒ๊ณผ ๋ถ๋ฆฌํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์๋ฅผ ๋ค์ด ํ ๋๋ฆฌ์ ํฌ๋ช ๋๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ์ธ๊ธํฉ๋๋ค. ์ด ๋ณ๊ฒฝ ์ฌํญ์ ๋ชจ๋ ์ปจํธ๋กค์ ์ํ ๊ฒ์ ๋๊น, ์๋๋ฉด ์ด ์ปจํธ๋กค์๋ง ์ ์ฉ๋๋ ๊ฒ์ ๋๊น? ๊ทธ๋ฆฌ๊ณ ์ด๋ ์ฃผ์ ์์ต๋๊น?
NumberBox ์ฌ์์๋ ์๊ฐ์ ์๊ฐ ํฌํจ๋์ด ์์ง ์์ผ๋ฉฐ ์๋ณธ ์ ์์์ ์ด๋ฏธ์ง๋ ๊ธฐ๋ฅ์ ๋ํ ๋๋ต์ ์ธ ์์ ๋๋ค. ์ปจํธ๋กค ํ ํ๋ฆฟ์ด 2epx์ CornerRadius ๊ฐ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ ๋ ๋ค๋ฅธ PR #524๊ฐ ์์ต๋๋ค. ์ด๋ Fabric Web์์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ ๋ฐ์ฌ๋ฆผ์ด๊ธฐ๋ ํฉ๋๋ค.
๋ฐ๋ผ์ TextBox ํ์ ์ปจํธ๋กค๋ ์ ์ฌํ๊ฒ ์ ๋ฐ์ดํธ๋ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๊ณ ์ด๋ฅผ NumberBox์ ์ ์๋ ๊ธฐ๋ฅ์ด ์ฌ๊ธฐ์ ์ด๋ป๊ฒ ๋ง์ถ ์ ์๋์ง ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ์ง์นจ์ผ๋ก ์ฌ์ฉํ์ต๋๋ค. Fabric ์น ํ ์คํธ ํ๋๋ ์ด๋ฏธ Prefix ๋ฐ Suffix ๊ฐ์ ์ง์ํ๋ฏ๋ก ํด๋น ๋์์ธ์ ์ ํํ๊ณ XAML ๋ฉํธ๋ฆญ์ ์ฌ์ฉํ์ต๋๋ค.
๋ฒํผ์ ๋ํด ๋ช ์์ ์ธ ํฌ๊ธฐ๋ฅผ ์ง์ ํ๋ ๊ฒ์ ํฌ๊ธฐ๊ฐ ์กฐ์ ๋๋ ์ปจํ ์ด๋์ ๋ฐ๋ผ ํญ์ ๊ท ๋ฑํ๊ฒ ๋ณํ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋์์ธ ๊ตฌ์ฑ ์์์์ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค. ํญ์ ์ ์ฌ๊ฐํ์ด์ด์ผ ํฉ๋๊น? ๋๋ ๋๋น๊ฐ ๊ธฐ๋ณธ ์ปจํธ๋กค ๋์ด์ ๋ฐ๋ผ ๊ณ ์ ๋์ด ์์ต๋๊น?
ํ์ฌ TextBox์๋ SearchBox, Password Reveal ๋ฒํผ ๋ฐ Clear Text ๋ฒํผ๊ณผ ๊ฐ์ ํตํฉ ๋ฒํผ์ด ์์ต๋๋ค. XAML์ฉ ํฐ์น ๋์์ ๋ฒํผ์ 32 x 32 epx๋ก ์ ์ํฉ๋๋ค. ์ ๋ ๋ฒํผ์ ์ ์ฌ๊ฐํ์ผ๋ก ์ ์งํ๊ณ ํด๋น ์ง์นจ์ ์ฌ์ฉํ์ต๋๋ค.
์ ๋์ฌ์ ์ ๋ฏธ์ฌ์ ๋ํ ๋ฐฐ๊ฒฝ ๋ธ๋ฌ์๊ฐ ์ด๋ป๊ฒ ๊ฒฐ์ ๋ฉ๋๊น? ๊ธฐ์กด ์์คํ ๋ธ๋ฌ์๋ฅผ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํ์ง๋ง ์ด๋ค ๋ธ๋ฌ์์ธ๊ฐ์?
๋ด ์์์๋ ํ ๋ง ์ ๊ฒฝ์์ ์ฌ์ฉํ์ง๋ง ๋ถํฌ๋ช ๋๋ 15%๋ฅผ ์ฌ์ฉํ์ต๋๋ค. FabricWeb์ 10%์ ๊ฐ๊น๊ณ XAML ๋ฒํผ์ 20%๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ListLowBrush์ ๊ฐ์ ์ ์ฌํ ๋ธ๋ฌ์ ๊ฐ์ด ์์ง๋ง ์ TextBoxAppendixBackground ๋ธ๋ฌ์๊ฐ ํ์ํ ์ ์์ต๋๋ค. ํ ์คํธ ์ ๊ฒฝ์ ๋์ผํ PlaceholderTextForeground ๋ธ๋ฌ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ง์คํน์ ์ด ์ฌ์์์ ๋ค๋ฃจ์ง ์์ต๋๋ค. "Masked" ์์ ๊ฐ ํ์ ๋ฌธ์์ด๊ณผ ๊ด๋ จ๋๋๋ก ์๋๋์์ต๋๊น?
๋ง์คํฌ ๋ ์์ ๋ ํ์์ ์ด๋ป๊ฒ ๋์ํฉ๋๊น?
๋๋ ๋น์ ์ด ๋ฒ์ 4 IP ์ฃผ์์ ํญ๋ชฉ์ ๋ณด์ฌ์ฃผ๋ ์๋ผ๊ณ ๊ฐ์ ํ์ง๋ง ๋ชจ๋ ๊ฒ์ด ์ผ๋ง๋ ๊น๋ํ๊ฒ ๋ง๋์ง์ ๋ฐ๋ผ ๊ฑฐ๊ธฐ์ ๋ง์ ๊ฐ์ ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. ์ ๋ ฅํ ์ ์๋ ๋ชจ๋ ๊ฐ์ ๋ฐฐ๊ฒฝ๊ณผ ์ฌ๋ฐฑ์ด ์์ด์ผ ํฉ๋๊น? ํญ์ ํ์๋์ง ์์ผ๋ฉด ์ด๋ป๊ฒ ํฉ๋๊น? ๊ทํ์ ์์ ๊ฐ์ด ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ๊ณต๊ฐ์ ๋ง๊ฒ ์ฝํ ์ธ ๋ฅผ ๋๋ ค์ผ ํฉ๋๊น? ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ๋ณด๋ค ๋์ ์ฝํ ์ธ ๋ฅผ ํจ๋ํ ๋ ์ ๋ ฅํ ์ ์๋ ๊ฐ์ ํ ๋น๋ ๊ณต๊ฐ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋ฉ๋๊น?
๋๋ ์ด๊ฒ์ ๋ํ ๋ชจ๋ ๋ต์ ๊ฐ์ง๊ณ ์๋ ์ฒํ์ง ์์ ๊ฒ์ด๋ฉฐ, ๊ทธ๊ฒ์ด ์ปจํธ๋กค์ ์ด๋ป๊ฒ ๊ฐ์์ ์ผ๋ก ํ์๋๋์ง๋ ์ปจํธ๋กค์์ ๋ง์คํฌ ์์์ด ๊ตฌํ๋๋ ๋ฐฉ์์ผ๋ก ๊ท๊ฒฐ๋ฉ๋๋ค.
IP v4 ์ฃผ์๋ ์ฌ์์ ๋์ ์๋ ์์ ๋ก ์ฌ์ฉํ์ผ๋ฉฐ ์๋ ์๋๋ ์ ์๋ ๋ด์ฉ์ ์ค๋ช ํ๋ ๊ฒ์ด์์ต๋๋ค(์ ๋์ฌ ๋ฐ ์ ๋ฏธ์ฌ ์์ ๊ฐ ๋ถ์กฑํ์ฌ ๋ค๋ฅธ ๊ฐ์ ์ ํํ์ง๋ง).
๋ค๋ฅธ ์ปจํธ๋กค์ด ๋ง์คํน์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ณ ์ผ๋ถ๋ ๊ฐ์ด ์ ๋ ฅ๋ ๋ ์บ๋ฟ์ ์ด๋ํ๋ ์ธ๋ผ์ธ ํ ์คํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ ์ ํ๋ฒํธ๋ฅผ ์ ๋ ฅํ ๋ ๋๊ดํธ์ ํ์ดํ๊ณผ ๊ฐ์ด ์ ๋ ฅํฉ๋๋ค. ์ผ๋ถ๋ ํญ ๋๋ ํ์ดํ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ธ๊ทธ๋จผํธ ์ฌ์ด๋ฅผ ์ด๋ํฉ๋๋ค. ๋ง์์ ๋ ์ค๋ฅด๋ ๊ฐ์ฅ ๊ฐ๊น์ด Microsoft์ ์๋ Windows ์ค์น ์ค์ ์ ํ ํค๋ฅผ ์ ๋ ฅํ๋ ๊ฒ์ ๋๋ค.
์ถ๊ฐ๋ ์์์ ๋์ผํ ์คํ์ผ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฏธ์ ๊ฐ๊ฐ์ ๋ง์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง, ์ด๊ฒ์ด ๋ชจ๋ ๊ฒ์ ๋ง์ถ๊ธฐ ์ํด ์ปจํธ๋กค์ ๊ธธ์ด๋ฅผ ์ถ๊ฐํ๊ณ ์ธ๋ผ์ธ์ด ๊ณต๊ฐ์ ๋ ์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
์ง๊ธ TextBox๋ก ์์ ํ ๋ ์ฐธ๊ณ ์ฌํญ์ ๋๋ค. https://doc.qt.io ์ ์ ์ฌํ๊ฒ ์ฌ์ฉ์๊ฐ ๊ฐ์ ๋ณ๊ฒฝํ์์ ์๋ฆฌ๋ ๋จ์ผ ์ด๋ฒคํธ๊ฐ ์์ต๋๋ค(์ฆ, ํฌ์ปค์ค๋ฅผ ์์ ๊ฒ๊ณผ ๋ฆฌํด ํค๋ฅผ ๋๋ ์ ๋์ ํฉ์งํฉ).
@adrientetar NumberBox๋ ๋ชจ๋ ์ ๋ ฅ์ด ์ซ์๋ก ๊ณ์ฐ๋๊ธฐ ๋๋ฌธ์ ์ด๋ฆ์ผ๋ก ๊ด์ฐฎ์ ๋ณด์ ๋๋ค. IP ์ฃผ์์๋ ์ ํ๋ฒํธ, ํตํ, ์ธก์ ์น ๋ฑ 4๊ฐ์ ์ซ์๊ฐ ์์ต๋๋ค.
DigitBox, NumeralBox ๋ฑ์ ๋ชจ๋ Microsoft ๋ช ๋ช ์คํ์ผ์ ๋ง์ง ์๋ ๋ณํ์ ๋๋ค.
๊ฐ์ ๋ณธ์ง์ ์ผ๋ก ์ซ์์ผ ํ์๊ฐ ์์ผ๋ฏ๋ก ValueBox๋ ์ฝ๊ฐ ์คํด์ ์์ง๊ฐ ์์ต๋๋ค.
@sonnemaf ๋ฐ @mdtauk , ๋๋ ๋ด์ฅ ๊ณ์ฐ๊ธฐ ์์ด๋์ด์ ๋ํด ํ๊ณผ ์ด์ผ๊ธฐํ์ผ๋ฉฐ ์์ปจ๋ ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ข์ํฉ๋๋ค. ๊ณผ์ฅ์ด ์๋๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ๋ฌ๋ถ ๋ชจ๋๊ฐ ์ฐ๋ฆฌ๊ฐ ์ ๊ณตํ๋ ์ปจํธ๋กค์ ํ์ง๊ณผ ์ฐฝ์์ฑ์ ์ด๋ฏธ ์ด๋ป๊ฒ ํฅ์์์ผฐ๋์ง์ ๋ํด ๋ํ ๋์ ์์ด ๊ธฐ์ฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ ค๋ฉด ๋น์ ์ ๋์์ด ํ์ํฉ๋๋ค. ์ฐ๋ฆฌ์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ํตํด ๋์ค๋ ์๋ง์ ๋ฉ์ง ์์ด๋์ด๋ฅผ ํ์ ํ๋ ๋ฐฉ๋ฒ์ ์์ด๋์ด ์ค์ฌ๋ฟ๋ง ์๋๋ผ ์๋๋ฆฌ์ค ์ค์ฌ์ด๊ธฐ๋ ํฉ๋๋ค. (์ด ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๊ทํ์ ๊ธฐ๋ฅ ์์ฒญ์ด ์ฐ๋ฆฌ ๋ฆฌํฌ์งํ ๋ฆฌ ์ ์ฒด์์ ๊ตฌ์ฒด์ ์ธ ์ํฅ๋ ฅ์ ๋ฐํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๊ณต์ ํฉ๋๋ค.)
๊ฐ๋ฐ ์ค์ธ ์ฑ์ ๋ด์ฅํ ๊ณ์ฐ๊ธฐ์ ๋ํ ์ค์ ์๋๋ฆฌ์ค๋ฅผ ์ ๊ณตํ ์ ์์ต๋๊น? ์ปจํ ์คํธ, ์คํฌ๋ฆฐ์ท, ์ฌ์ฉ์ ํ๋กํ์ด ๋ชจ๋ ๋์์ด ๋ฉ๋๋ค. (์ธ๋ถ ์ฌํญ์ ๊ธฐ๋ฐ๋ก ์ ์งํ๋ ค๋ฉด ๋ด ์ด๋ฉ์ผ๋ ๋ด GitHub ํ๋กํ์ ์์ต๋๋ค.) @xyzzer , @mrlacey , @robloo , @Felix-Dev, @adrientetar ๋ฐ @ArchieCoder , ์ด ๊ธฐ๋ฅ์ด ์์ผ๋ฉด ์ฌ์ฉ ์๋๋ฆฌ์ค๋ฅผ ๊ณต์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋น์ ์๊ฒ๋ ๊ด์ฌ์ด ์์ต๋๋ค.
์ด ๋จ๊ณ๋ฅผ ๋์ด ์ด ๊ธฐ๋ฅ์ ๋ณ๋ชฉ ํ์์ ์ผ์ผํฌ ์ ์๋ ์ ์ผํ ๊ฒ์ ๊ณ์ฐ๊ธฐ ์ฑ์ ์์ง์ผ๋ก WinUI์ DLL ํฌ๊ธฐ๋ฅผ ๋ถํ๋ฆด ์ํ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ํ๋น์ฑ์ ํ์ธํ๊ธฐ ์ํด ๋ณํํ์ฌ ๊ฒํ ํ๊ฒ ์ต๋๋ค.
์ด์ ์ ์ด ์ปจํธ๋กค์ ๋จ์ํ ์ซ์ ์ ํ ์ด์์ผ๋ก ์ทจ๊ธ ์ ๊ธฐํ์ต๋๋ค .
์ซ์์ ์ผ๋ จ์ ์ซ์๋ฅผ ํฌํจํ๋ ๋ฌธ์์ด ์ฌ์ด์๋ ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
์ด๊ฒ์ ์ฌ์์ ์ฒซ ๋ฒ์งธ ์ด์์ด ๊ฒ์๋๊ธฐ ์ ์ด์์ผ๋ฏ๋ก ์ด ์ปจํธ๋กค์ด "์ ํต์ ์ธ ์ซ์ ๊ฐ"๊ณผ "์ซ์ ์ซ์๋ฅผ ํฌํจํ๋ ๋ฌธ์์ด"์ ๋ชจ๋ ์ฒ๋ฆฌํ๋๋ก ๊ณ ๋ คํ๊ณ ๊ฒฐ์ ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
๋๋ ์๋ฌด๋ IPv4 ์ฃผ์๊ฐ ํ์ํ๋ ์ซ์ ์ํ์ค๋ณด๋ค ์ผ๋ฐ์ ์ผ๋ก ํํ๋์ง ์๋ ๋ค๋ฅธ ์ ์์ ์ํด "์ซ์"์๋ค๊ณ ์ฃผ์ฅํ๋ ค๊ณ ์๋ํ๊ณ ์ฃผ์ฅํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ค์ ๋ก๋ 4๋ฐ์ดํธ ๊ฐ์ ๋ถ๊ณผํฉ๋๋ค.
@SavoySchuler
IP ์ฃผ์๋ฅผ ์ง์ํ๋ ์ปจํธ๋กค์ด ์์ผ๋ฉด ํ๋ซํผ์ ํฐ ๋์์ด ๋ ๊ฒ์ด์ง๋ง NumberBox๊ฐ ์ด ์๋๋ฆฌ์ค์ ์ ํฉํ ์ปจํธ๋กค์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
์์์ ์ธ๊ธํ๋ฏ์ด NumberBox ์ปจํธ๋กค์ ๋ค์์ ์ํํฉ๋๋ค.
Number
๊ฐ์ ํค๋ณด๋ ์ฌ์ฉ์ด๋ฌํ ๊ธฐ๋ฅ ์ค ์ด๋ ๊ฒ๋ IP ์ฃผ์์ ๊ด๋ จ์ด ์์ต๋๋ค. ์ปจํธ๋กค์ ๋์์ธ์กฐ์ฐจ๋ ๋งค์ฐ ๋ค๋ฆ ๋๋ค.
๋ํ IPv4 ์ฃผ์๋ฅผ ์ง์ํ๋ ๊ฒฝ์ฐ ์ซ์๊ฐ ์๋ 16์ง์๋ฅผ ์ฌ์ฉํ์ฌ IPv6 ์ฃผ์๋ ์ง์ํด์ผ ํฉ๋๋ค.
์ด ์ปจํธ๋กค์ IP ์ฃผ์ ์ง์์ ํฌํจํ์ง ์๊ณ UWP์ ๋ํ ์๋ก์ด MaskedTextBox
์ปจํธ๋กค(IPv4, IPv6, ์ ํ ๋ฒํธ, ์ฐํธ ๋ฒํธ, SSN ๋ฑ ์ง์)์ ์์
ํ๋ ๊ฒ์ด ๋ ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค TextBoxMask
๋ฅผ ๋์ฒด/๊ฐ์ ํ๊ธฐ ์ํ ํ๋ถํ UI(@mdtauk๊ฐ ์์ฐ)๋ก
IP ์ฃผ์๋ฅผ ์ง์ํ๋ ์ปจํธ๋กค์ด ์์ผ๋ฉด ํ๋ซํผ์ ํฐ ๋์์ด ๋ ๊ฒ์ด์ง๋ง NumberBox๊ฐ ์ด ์๋๋ฆฌ์ค์ ์ ํฉํ ์ปจํธ๋กค์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
์์์ ์ธ๊ธํ๋ฏ์ด NumberBox ์ปจํธ๋กค์ ๋ค์์ ์ํํฉ๋๋ค.
- ๋ฌผ๋ฆฌ์ ํค๋ณด๋๊ฐ ์๋ ์ฅ์น์์ ์ฌ์ฉํ ๋
Number
๊ฐ์ ํค๋ณด๋ ์ฌ์ฉ- 2๊ฐ์ ๋ฒํผ์ด ์์ต๋๋ค -/+
- ๊ณ์ฐ๊ธฐ๋ก ํ์ ์ ํ์ํ๊ฑฐ๋ ์ฌ์ฉ์๊ฐ ๊ธฐ๋ณธ ์ฐ์ ์ฐ์ฐ์ ์ ๋ ฅํ ์ ์๋๋ก ํฉ๋๋ค.
์ด๋ฌํ ๊ธฐ๋ฅ ์ค ์ด๋ ๊ฒ๋ IP ์ฃผ์์ ๊ด๋ จ์ด ์์ต๋๋ค. ์ปจํธ๋กค์ ๋์์ธ์กฐ์ฐจ๋ ๋งค์ฐ ๋ค๋ฆ ๋๋ค.
๋ํ IPv4 ์ฃผ์๋ฅผ ์ง์ํ๋ ๊ฒฝ์ฐ ์ซ์๊ฐ ์๋ 16์ง์๋ฅผ ์ฌ์ฉํ์ฌ IPv6 ์ฃผ์๋ ์ง์ํด์ผ ํฉ๋๋ค.
์ด ์ปจํธ๋กค์ IP ์ฃผ์ ์ง์์ ํฌํจํ์ง ์๊ณ ๋์ UWP์ ๋ํ ์๋ก์ด
MaskedTextBox
์ปจํธ๋กค(IPv4, IPv6, ์ ํ ๋ฒํธ, ์ฐํธ ๋ฒํธ, SSN ๋ฑ ์ง์)์ ์์ ํ๋ ๊ฒ์ด ๋ ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋คTextBoxMask
๋์ฒด/๊ฐ์
@rudyhuyn ๋๋ ๋น์ ์ด ์ฌ๊ธฐ์์ ๋งํ ๊ฒ์ ๋๋ถ๋ถ ๋์ํ๋ฉฐ ์ ์ผ๋ฌ์คํธ๋ ์ด์ ์ ์ ์๋ ์ฌ์์ ์ํ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ธ๊ธํ๋ฏ์ด Masked Text Box๋ ์ซ์์๋ง ๊ตญํ๋์ง ์๊ณ ๋ฌธ์์ด๋ ํฌํจํ ์ ์์ต๋๋ค. Microsoft ์ ํ ํค ์์๋ 5๊ฐ ์ธํธ์ 0-9 AZ ๋ฌธ์๊ฐ ํ์ฉ๋๋ ์ข์ ์์ ๋๋ค.
Masking์ด ๋ถ๋ฆฌ๋๋๋ผ๋ ์ฌ์ ํ NumberBox ์ปจํธ๋กค์ PrefixText ๋ฐ SuffixText ์์ฑ์ ํฌํจํ๋ ์ข์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํตํ, ์ธก์ , ๋ชจ๋ ์ผ์ข ์ ์ปจํ ์คํธ๊ฐ ํ์ํฉ๋๋ค.
ํ์ ๋ฒํผ์ ์์ ํ ๊ฐ์ ์ฆ๊ฐ ๋ฐ ๊ฐ์์ํค๊ธฐ ์ํ ๊ฒ์ด๋ฏ๋ก ์ด๋ฌํ ๊ฐ๋ NumberBox ์ปจํธ๋กค์ ๋ฒ์ ๋ด์ ์์ต๋๋ค.
์ ๋์ฌ ๋ฐ ์ ๋ฏธ์ฌ๋ TextBox ์ปจํธ๋กค ์์ฒด์ ์์ฑ์ด ๋ ์ ์์ผ๋ฏ๋ก ๋ค๋ฅธ ์ปจํธ๋กค์์ ์์๋ฉ๋๋ค. (์ทจ์ฝ์ ์ ์ฌ๋ ๊ฒฝ์ฐ PasswordBox์ ๋ํ ์์ธ๊ฐ ํ์ํ ์ ์์ต๋๋ค.)
๊ณตํต ๊ฐ์ ๋ง์คํฌ๋ ์ด ๋ถ๋ฆฌ๋ ์ปจํธ๋กค์ ๋ํ ์ด๊ฑฐํ(CustomFormatMask์ ํจ๊ป)์ผ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ง์คํฌ ์ค ์ผ๋ถ๋ ์๊ตญ ์ฐํธ๋ฒํธ๊ฐ ์์ซ์์ด๊ณ ์๊ตญ ๊ตญ๋ฏผ ๋ณดํ ๋ฒํธ๊ฐ ํน์ ํ์์ ๋ฐ๋ฅด๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฌธํ ์ปจํ ์คํธ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
์๊ตญ ์ฐํธ๋ฒํธ ์(No. 10 Downing Street์ฉ)
๋ต์ฅ์ ๋ณด๋ด๊ธฐ ์ ์ ์ค๋ ์์นจ์ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํ์ง ๋ชปํ ๊ฒ ๊ฐ์ต๋๋ค... ์ด ์ ์์ ์์ ํ ์๋ก์ด ์ฐจ์์ผ๋ก ๋์ด ์ฌ๋ฆฐ ๋ชจ๋ ๋ก์คํ ์๊ฒ ๊ฐ์ฌํฉ๋๋ค! GitHub์์ ๋จ์ด๊ฐ ๋จ์ฉ๋๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ง์ฌ์ ๋๋ค!
@mdtauk - ๋น์ ์ ๋ชฉ์ ์ ํ์์ ์ ๋๋ค. ๋๋ ์์ง ์ด ์ปจํธ๋กค์ ๋ํ ํ๋กํ ํ์ ๋์์ธ์ ์ด์์ ์์ฑํ์ง ์์์ต๋๋ค. ๋ชจํ์ ๋ถํดํ์ฌ ๋์์ด๋๊ฐ ํ๋ ํธ๋ฅผ ์์ํ๋ ๋ฐ ์ฌ์ฉํ ํ๋กํ ํ์ ์ผ๋ก ์ฌ์์ ์ถ๊ฐํด๋ ๋ ๊น์? ์ค๋ ์ฐ๋ฝํ์ฌ ๋์์ด๋๋ฅผ ์์ฒญํ๊ณ ์ฌ๊ธฐ์์ @mrlacey ๋ก ๊ทํ์ ์ค๋ ๋์ ํ์ ํ ์
@sonnemaf , ๋ค์ ํ ๋ฒ ๊ฐ์ฌํฉ๋๋ค! ๊ทํ์ ์๊ฒฌ์ ๋ณต์ฌํ์ฌ ์ฌ๊ธฐ Pull Request์ ๋ํ ํญ ์ ๋ค์ ๊ฒ์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฌ๊ธฐ์์ ์์ง๋์ด๋ง ํ์ด API ๋ฐ ๊ตฌํ ์์ค์ ์ฐธ์ฌํ๊ธฐ ์์ํ ๊ฒ์ ๋๋ค. ํฌ๊ด์ ์ธ ๋ต๋ณ์ ์ ๊ณตํ๊ธฐ ์ํด ์ฌ๊ธฐ์์ ๊ฐ์ด๋๋ผ์ธ๊ณผ ๋ฌธ์์ ์ด์์ ์์ฑํ๊ธฐ ์์ํฉ๋๋ค. ๋๋ ์ ์์ ๊ฒฝ์ฐ [DEV], ํ์์ ๊ฒฝ์ฐ [PM]์ผ๋ก ์ปค๋ฐ์ ์์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ด๊ฒ์ ์ฌ์ ํ โโ๋์ ์์ค์ ์๊ตฌ ์ฌํญ ํ ๋ก ์ ์ํ ์ฌ๋ฐ๋ฅธ ํฌ๋ผ์ ๋๋ค(์: ๋ด์ฅ ๊ณ์ฐ๊ธฐ ๋ฐ @mdtauk ์ ๋ชจํ).
@mdtauk : ๋๋ ๋น์ ์ ๋ง์ ๋์ํฉ๋๋ค. ์ ๋์ฌ/์ ๋ฏธ์ฌ๋ TextBox
์ข์ ์ถ๊ฐ๊ฐ ๋ ๊ฒ์ด๋ฉฐ ์ซ์์ ๊ตญํ๋์ง ์์ต๋๋ค. ๋ช ๊ฐ์ง ์:
W-
์์ํ ๋ ์์์ ์ด๋ฆ์ ์
๋ ฅํ์ญ์์ค๋ฑ...
ํ ๋ก ์ ์์ํ ์ ์๋๋ก ๋ค๋ฅธ ํฐ์ผ์ ์ด์ด์ผ ํฉ๋๋ค!
@rudyhuyn IP ์ฃผ์ ๊ฐ์ ๊ฒ์ ์ง์ํ์ง ์์ง๋ง ์ ํ๋ฒํธ๋ ์ฐํธ๋ฒํธ๋ ์ง์ํ๋ ๊ธฐ๋ฅ์ด ์คํ ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ๋ณด์ญ๋๊น?
์ ์๊ฐ์๋ ์ด๋ค ๊ฒ์ ์ ํํ๊ธฐ ์์ํ๊ณ ๋ค๋ฅธ ๊ฒ์ ์ ํํ์ง ์๋ ๊ฒฝ์ฐ ์ ์ฉ ๋์์ ๋ํ ๊ท์น์ด ๋งค์ฐ ๋ช
ํํ๊ฒ ์ ์๋์ด์ผ ํฉ๋๋ค.
์ ์, ๋ถ๋ ์์์ ๋ฑ์ผ๋ก ํ์๋ ์ ์๋ ๊ฐ์ ์ง์ํ๋ฉด ์ํฉ์ด ๋งค์ฐ ๋ช
ํํด์ง๋ฉฐ ์ฌ์ ํ ๋ง์ ๊ฐ์น๋ฅผ ์ ๊ณตํ๋ ์ปจํธ๋กค์ด ์์ฑ๋ฉ๋๋ค.
@SavoySchuler ๋ด ๋์์ธ์ ์ ์ ์ผ๋ก ๊ทํ์ ์ฒ๋ถ์ ๋ฌ๋ ค ์์ผ๋ฉฐ, ๊ธฐ์ฌํ๋ ๋ชจ๋ ์ฌ๋์ ์ํ ์ ์ด๋ฅผ ์๊ฐํํ๋ ๋ฐ ๋์์ด ๋๋๋ก ๊ฒ์ํ์ต๋๋ค.
@rudyhuyn MaskedTextBox ๋๋ FormattedTextBox์ ๋ํ ์ ์์ ๊ฒ์ํ๋ฉด ๋ ๋ง์ ๋น์ค์
@mrlacey ์ ํ๋ฒํธ(์์ ๋ฌธ์ ์ ์ธ)๋ ์์ํ ์ซ์์ด์ง๋ง ์ด๋ค ์ข ๋ฅ์ ๊ณ์ฐ ์ฌ์ฉ ์ฌ๋ก์๋ ์ํ์ง ์์ผ๋ฏ๋ก ๋ง์คํฌ๋ TextBox์ ๋ ์ ๋ง์ต๋๊น? ์๋๋ฉด NumberBox์์ ์ด๋ฅผ ์ง์ํ๋ ๋ฐ ๊ฐ์น๊ฐ ์์ต๋๊น?
์ปจํธ๋กค์ ์์ฑํ ๋ ์ด๋ค ์ปจํ ์คํธ์์ ์ฌ์ฉํ ์ปจํธ๋กค์ด ์ค์ํ์ง์ ๋ํ ๋ช ํํ ์ฌ์ฉ ์ฌ๋ก์ ์์ ๋ฅผ ์ ๊ณตํ๋ ๋ฌธ์.
@mrlacey : ๊ทธ๋ ์ง ์์ต๋๋ค.
์ด์ ์ ๋งํ๋ฏ์ด 0-9 ๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ฟ๋ง ์๋๋ผ ์ฐ์ ๊ฐ๊ณผ ์ฐ๊ฒฐ๋ ์ค์๋ฅผ ๋ถ๋ฆฌํด์ผ ํฉ๋๋ค.
IP์ฃผ์, ์ ํ๋ฒํธ, ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ, ์ฐํธ๋ฒํธ๋ 0~9์๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง๋ง ์ฐ์ ์ ๊ฐ์ ์์ต๋๋ค(2๊ฐ ์ถ๊ฐ ๊ฐ๋ฅ, ๋์ ".00"์ ๋ถ์ด๋ฉด ๊ฐ์ ์๋ฏธ๊ฐ ๋ฐ๋๋ ๋ฑ..) . ์ด๋ฌํ ๊ฒฝ์ฐ ๊ฐ์ int/double์ด ์๋ ๋ฌธ์์ด์ด๋ฏ๋ก MaskedTextBox๊ฐ ๋ ์ ํฉํฉ๋๋ค.
๋ํ ์ฐํธ ๋ฒํธ๋ ๋ฏธ๊ตญ์์๋ ์ซ์๋ง ์ฌ์ฉํ์ง๋ง ์บ๋๋ค์์๋ ์ฌ์ฉํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด IPv6 ์ฃผ์์๋ AF ๋ฌธ์๊ฐ ํฌํจ๋ ์ ์๊ณ ์ ํ ๋ฒํธ์๋ + ๊ธฐํธ๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค(555-123-4567 ๋ฐ +555-123-4567์ 2๊ฐ์ ๋ค๋ฅธ ์ ํ๋ฒํธ) ๋ฑ...
๋ด ์๊ฒฌ์ ์์ฝํ์๋ฉด NumberBox.Value๋ ๋ฌธ์์ด์ด ์๋๋ผ double์ด์ด์ผ ํฉ๋๋ค.
@mrlacey ์ ํ๋ฒํธ(์์ ๋ฌธ์ ์ ์ธ)๋ ์์ํ ์ซ์์ด์ง๋ง ์ด๋ค ์ข ๋ฅ์ ๊ณ์ฐ ์ฌ์ฉ ์ฌ๋ก์๋ ์ํ์ง ์์ผ๋ฏ๋ก ๋ง์คํฌ๋ TextBox์ ๋ ์ ๋ง์ต๋๊น? ์๋๋ฉด NumberBox์์ ์ด๋ฅผ ์ง์ํ๋ ๋ฐ ๊ฐ์น๊ฐ ์์ต๋๊น?
์ ํ ๋ฒํธ๋ ์ ์ฒด ์ซ์(ํ์ ํฌํจ)๋ก ๊ตฌ์ฑ๋ ์ ์์ง๋ง ๊ทธ๋ ๋ค๊ณ ํด์ ์ซ์๊ฐ ๋๋ ๊ฒ์ ์๋๋๋ค. ์ด๋ค ์ข
๋ฅ์ ์ฐ์ ์ฐ์ฐ๋ ์ํํ ์ ์์ผ๋ฉฐ ์๋ฏธ ์๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
๋ํ ์ผ๋ถ๋ ๋ํ๊ธฐ ๊ธฐํธ๋ก ์์ํ ์ ์์ต๋๋ค.
๋ํ ์ ํ๋ฒํธ์์ ์์ ์ค๋ 0์ ์๋ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ซ์ ๊ฐ์ ๊ฒฝ์ฐ ๊ทธ๋ ์ง ์์ต๋๋ค.
๊ณ์ฐ ๋๋ ์/์๋ ๋ฒํผ๊ณผ ๊ฐ์ ์ปจํธ๋กค์ ๋ค๋ฅธ ๊ธฐ๋ฅ์ "์ ํ ๋ฒํธ"์ ๋ํด ์๋ฏธ๊ฐ ์์ต๋๋ค.
์ด ์ ์ด๋ ์ ๋ณด ์์ค ์ํ ์์ด int/uint ๋๋ ์์๋ก ๋ณํํ ์ ์๋ ๊ฐ์ผ๋ก ์ ํ๋์ด์ผ ํฉ๋๋ค.
์ด ํผ๋๋ฐฑ์ ์ ์ ํ๊ฒ ํฉ์ฑํ๊ณ ์๋์ง ํ์ธํ๊ธฐ ์ํด ํ์ ์ ํ ๋ฐ ์์ง์๊ฐ๋ฝ์ ํตํด ๋ชจ๋ ์ ํ์ ์ซ์ โโ๋ฌธ์์ด ์ ๋ ฅ(์: ์ ํ ๋ฒํธ ๋ฐ IPv4)์ ๊ฐ์ฅ ์ ํฉํ ์์น๋ผ๊ณ ์๊ฐ๋๋ฉด ์ด ๋๊ธ์ ์์ง ์๊ฐ๋ฝ์ ์ฌ๋ ค ์ฃผ์ธ์. NumberBox๊ฐ ์ํ ๋ฐ ์ํ ๊ฐ ์บก์ฒ์๋ง ์ง์คํ ์ ์๋๋ก ํด๋น ๊ธฐ๋ฅ์ ๋ค๋ฅธ ์ปจํธ๋กค์ด๋ ์ ์ปจํธ๋กค๋ก ์ฐ๊ธฐํด์ผ โโํ๋ ๊ฒฝ์ฐ ์๋๋ก . (๊ณ์ฐ๊ธฐ ๋ชจ๋ ๋ฐ Up/Down ๋ฒํผ๊ณผ ๊ฐ์ ์ํ ์ฐ์ฐ์ ์ง์ํ๋ ๊ธฐ๋ฅ์ ํด๋น API๋ฅผ ํตํด ํ์ฑํํด์ผ ํฉ๋๋ค.)
์ ์ธ๊ณ์ ์ผ๋ก ๊ณ ๊ฐ์๊ฒ ์ต๊ณ ์ ํฌ์ ์์ต์ ์ ๊ณตํ๋ ๊ฒฐ์ ์ ๋ด๋ฆด ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ๋ฏผ์ฃผ์ ์ผ๋ก ๊ฒฐ์ ๋ ๊ฒ์ด๋ผ๊ณ ๋ณด์ฅํ ์๋ ์์ต๋๋ค. ๋ฌธ์์ด์ ๋ํ ์ ์ฉ ์ปจํธ๋กค์ ์ ํธํฉ๋๋ค.
@SavoySchuler ๊ฐ์ ์ปจํ ์คํธ์ ์๋ฏธ๋ฅผ ์ถ๊ฐํ๋ ์ ๋์ฌ์ ์ ๋ฏธ์ฌ ๋ฟ๋ง ์๋๋ผ
๋ด๊ฐ ์ฌ์ ํ ์๋ตํ๊ณ ์๋ ์์ฒญ๋ ์์ ํผ๋๋ฐฑ์ด ์์ต๋๋ค. ๊ธฐ๋ค๋ ค ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ฌ๊ธฐ์ ์ฌ์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์๋ ๋ชจ๋ ์ฌ๋์๊ฒ ๋ต๋ณ์ ๋๋ฆฌ๊ฒ ์ต๋๋ค!
( @ryandemopoulos ์
@SavoySchuler ์ฐ๋ฆฌ๊ฐ ๋ ผ์ํ๊ณ ์๋ ์ ์ด ์ ํ์ ์ฌ์ฉํ ์ ์๋ ๋ช ๊ฐ์ง ์๋๋ฆฌ์ค ์์ ๋ฅผ ์์ฒญํ์ต๋๋ค. ๋ด ์ฑ์๋ ์ข์ ์๊ฐ ๋ ์ ์๋ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
์ง๊ธ ์ฑ์์ Windows Community Toolkit์ ์๋์ ๊ฐ์ด TextBox์ ์์ฑ์ด ์ฐ๊ฒฐ๋ ๋ ๊ฒฝ์ฐ ๋ชจ๋์ ์ฌ์ฉ๋ฉ๋๋ค.
TextBoxRegex.ValidationMode="๋์ "
TextBoxRegex.ValidationType="10์ง์"
ํธ์ง: NumberBox.Value ์ ํ์ ๋ํด 2๋ฐฐ์์ 10์ง์๋ก ์ ํํ๋ ์์ด๋์ด๋ฅผ ์ ๊ฑฐํ์ต๋๋ค. ์ด๊ฒ์ด C++ WinRT ์ธ๊ณ์ ์กด์ฌํ๋ค๊ณ ๊ฐ์ ํ๋ ๊ฒ์ ํ๋ ธ์ต๋๋ค. ๊ทธ๋ ์ง ์๊ณ ๋์ .net ์ฝ์ด/ํ๋ ์์ํฌ์๋ง ์์ต๋๋ค.
@robloo , ๊ทธ ๋ง์ง๋ง ์ฝ๋ฉํธ์ ๋ํด WinRT์๋ Decimal ์ ํ์ด ์์ต๋๋ค.
XAML ๋๊ตฌ ํคํธ์ Visual Tree ๋๋ฒ๊ฑฐ๋ ๋๊ตฌ ํคํธ์ NumericUpDown ์ปจํธ๋กค์ ํฌ๊ฒ ์์กดํ๋ ๋๊ตฌ๋ก, ๋ง์ฐ์ค ๋๊ธฐ, ๋ฒํผ, ํค๋ณด๋๋ฅผ ์ฌ์ฉํ ์ฆ๊ฐ/๊ฐ์๊ฐ ๋ชจ๋ ์ค์ํฉ๋๋ค. ๊ณ์ฐ๊ธฐ ์
๋ ฅ๋ ๋์์ด ๋ ์ ์์ต๋๋ค.
@robloo ์ @xyzzer , ์ด๊ฒ์ ๋ด๊ฐ ์ฐพ๊ณ ์๋ ๋ฐ๋ก ๊ทธ ์ข ๋ฅ์ ์ ๋ณด์ ๋๋ค!
@robloo , ํนํ ์ฌ๋ก 1: Bullet 2 - ์ ํจ์ฑ ๊ฒ์ฌ ๋ ๋ง์คํน์ ๊ด์ฌ์ด ์์ต๋๋ค. ํ์ฌ "์๋ชป๋ ์ ๋ ฅ" ์๋๋ฆฌ์ค๋ฅผ ํตํด ์ด์ผ๊ธฐํด ๋ณด๊ฒ ์ต๋๋ค.
์ด ์ผ๋ จ์ ์ด๋ฒคํธ๋ฅผ ํตํด ์์ฑํ๋ ๋ฐ ํ์ํ ๊ฒฝํ์ ์์ฑํ ์ ์์ต๋๊น?
๋ง์คํน์ด ๋ฐ๋์งํ ๊ธฐ๋ณธ๊ฐ์ด ๋ ์ ์๋ค๋ ์ ์ ์ดํดํ์ง๋ง ์ง๋ ์ฃผ์ ์ฐ๋ฆฌ ํ์ด ๋ ผ์ํ ๋ด์ฉ์ ๊ณต์ ํ๊ฒ ์ต๋๋ค. Fluent ์ปจํธ๋กค์์ ์ ํจ์ฑ ๊ฒ์ฌ(์ค๋ฅ ํ์๊ธฐ/๋ฉ์์ง)๊ฐ ๋์์ธ ๋ง์คํน์ด ์ค๋ง์ค๋ฝ๊ณ ์ค๋ง์ค๋ฌ์ธ ์ ์๋ค๋ ๋ฐฉํฅ์ ์ฐฉ๋ฅํ์ต๋๋ค. ์ต์ข ์ฌ์ฉ์๊ฐ ํค๋ณด๋ ์ ๋ ฅ์์ ์๋ฌด ์ถ๋ ฅ๋ ๊ฒฝํํ์ง ๋ชปํ ๋ ํผ๋์ค๋ฝ์ต๋๋ค. ์ด์ ๋ํด ์๊ฐํ ์ ์๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ์ฌ์ฉ์์๊ฒ ์ผ์ ์์ค์ ํฌ๋ช ์ฑ๊ณผ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ ์ฌ์ฉ์๊ฐ ์๋ฆฌ ์์ด ๊ฐ์ ๋๋ ๊ฒ๊ณผ๋ ๋ฐ๋๋ก ๊ฒฝํ์ ๋ ์ ์ ์ ์๋๋ก ํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ์ ํ์ฌ ์กฐ์น๋ ๊ฐ๋ฐ์๊ฐ ๊ณ ๊ธ ์ ํจ์ฑ ๊ฒ์ฌ(๊ณง TextBox์ ์ ๊ณต๋จ)๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ํ์์ ๋ฐ๋ผ ValueChanged ์ด๋ฒคํธ๋ฅผ ํตํด ๋ง์คํนํ ๊ธฐํ๋ฅผ ์ฐจ๋จํ์ง ์์ผ๋ฉด์ ๊ธฐ๋ณธ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ด์์ต๋๋ค. ์ดํดํ์๋ฉด, ์ด๋ ๊ถ์ฅ ํ๊ฒฝ์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ฉด์ ๋ชจ๋ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ ์ ์์ ๋งํผ ์ถฉ๋ถํ ์ ์ฐํฉ๋๋ค.
๋น์ ์ ์๊ฐ์ ๋ฌด์์ ๋๊น? ๊ฐ๋ฅํ๋ค๋ฉด ์ด๋ฌํ ๊ฐ๋ ์ ์ถ๊ฐ๋ก ๊ตฌ์ฑํ๊ฑฐ๋ ๋ ๋์ ๊ฒฝํ์ ๊ตฌ์ถํ๊ธฐ ์ํ ์์ด๋์ด์ ๊ด์ฌ์ด ์์ต๋๋ค.
๊ทํ์ ๋ค๋ฅธ ์์ ์ธ @robloo ์ DecimalPrecision ์ ๋ฐ๋ ์์ฑ์ Spec ์ ์ถ๊ฐํ์ต๋๋ค. ์ด๊ฒ์ ="0"์ผ๋ก ์ค์ ํ๋ฉด ์ ์๊ฐ ๋ฉ๋๋ค. ๋ํ MinValue="0"์ ์ค์ ํ๋ฉด ์ซ์๋ฅผ ์์๊ฐ ์๋ ์ํ๋ก ์ ์งํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค(๋๋ ValueChanged ์ด๋ฒคํธ๋ ์ ๋ ฅ์ ์ ๋๊ฐ์ผ๋ก ๊ฐ์ ๋ณํํ ์ ์๋ ๋ ๋ค๋ฅธ ๊ธฐํ์ ๋๋ค).
์์ง ์คํ ์ ์ดํด๋ณด์ จ๋์? ๋๋ ๋น์ ์ ๊ฒฝํ์ ์์ ํ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ์์ฑ์ ํฌํจํ๋ค๊ณ ์๊ฐํ์ง๋ง(๊ฒ์ฆ ๋ ๋ง์คํน ๋ ผ์ ๋ณด๋ฅ ์ค) ๋ด๊ฐ ๋์น ๊ฒ์ด ์๋ค๊ณ ์๊ฐํ๋์ง ์๊ณ ์ถ์ต๋๋ค.
๋ง์คํน์ ์ต์ข ์ฌ์ฉ์๊ฐ ํค๋ณด๋ ์ ๋ ฅ์์ ์๋ฌด ์ถ๋ ฅ๋ ๊ฒฝํํ์ง ๋ชปํ ๋ ์ค๋ง์ค๋ฝ๊ณ ํผ๋์ค๋ฌ์ธ ์ ์์ต๋๋ค.
100% ๋์ํฉ๋๋ค. ๋ ๋์ ๋ฐฉ๋ฒ์ LosingFocus/EnterPressed์์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๊ณ ์ ๋ ฅ๋ ๊ฐ์ด ์ ํจ์ฑ์ ๊ฒ์ฌํ์ง ์๋ ๊ฒฝ์ฐ oldValue๋ฅผ ๋ณต์ํ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด LosingFocus/EnterPressed์์ ํธ๋ฆฌ๊ฑฐ๋๊ณ oldValue/newValue๋ฅผ ํฌํจํ๋ ์ ํธ๊ฐ ์๋ฒฝํ ์ด์ ์ ๋๋ค.
@adrientetar , ์ข์ ์ง์ ์ ๋๋ค! ๊ทธ๊ฒ์ด ๋น์ ์ด ๋ง๋ค์ด์ผ ํ ๊ฒฝํ์ ๋๊น? ๊ทธ๋ ๋ค๋ฉด ValueChanged ์ด๋ฒคํธ๊ฐ ์ด์ ๊ฐ๊ณผ ์ ๊ฐ์ ๋ชจ๋ ๋ณด๋ด๋๋ก ํด์ผ ํ๋ ์์ ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
@SavoySchuler ๊ทธ๊ฒ์ ์ค์ ๋ก ๋ด ์ฑ์์ํ๊ณ ์ถ์ ๊ฒ์ ๋๋ค. ์ปจํธ๋กค์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์ํํ์ง ์๋ ํ ํด๋น ๋์์ ์ง์ ๋น๋ํฉ๋๋ค.
๋ด๊ฐ ์ํ๋ ๋ค๋ฅธ ๊ฒ์ 10 ์ฆ๋ถ์ ๊ฒฝ์ฐ Shift+โ/โ ์ด๊ณ 100 ์ฆ๋ถ์ ๊ฒฝ์ฐ Ctrl+Shift+โ/โ ์ด์ง๋ง 100 ์ฆ๋ถ์ด ํญ์ ์๋ฏธ๊ฐ ์๋ ๊ฒ์ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ข์ ์ ! ์ปจํธ๋กค์ด RangeBase์์ ํ์๋๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
SmallChange์ LargeChange๋ฅผ ๋ชจ๋ ์ ์ํ๊ณ ์ด ๋์ ๋ค์์์ ์ฌ์ฉํฉ๋๋ค.
์์ฃผ ์ต์ํ.
ํธ์ถํ๋ ๋ฐ ์ฌ์ฉํ ํ์ค ํค๋ณด๋ ์กฐํฉ์ ์๊ฐ ์์ต๋๊น?
UWP์ RangeBase ๋๋ WinForms/ComCtl(?) NumericUpDown์ ํฐ ๋ณํ๊ฐ ์์ต๋๊น?
2019๋
6์ 3์ผ ์์์ผ ์คํ 3์ 50๋ถ Adrien Tรฉtar [email protected]
์ผ๋ค:
@SavoySchuler https://github.com/SavoySchuler ํ๊ณ ์ถ์๊ฑฐ
์ค์ ๋ก ๋ด ์ฑ์์ ์ํํ๋ฉด ์ปจํธ๋กค์ด ์ํํ์ง ์๋ ํ ํด๋น ๋์์ ์ง์ ๋น๋ํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก.๋ด๊ฐ ์ํ๋ ๋ค๋ฅธ ๊ฒ์ Shift+โ/โ๋ก 10์ฉ ์ฆ๊ฐํ๊ณ
Ctrl+Shift+โ/โ๋ 100์ฉ ์ฆ๊ฐํ์ง๋ง 100์ฉ ์ฆ๊ฐํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํญ์ ์๋ฏธ๊ฐ ์๋ ๊ฒ์ ์๋๋๋ค.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/microsoft/microsoft-ui-xaml/issues/483?email_source=notifications&email_token=AANMBMFZBHJIE4DR2KN46TTPYWN3BA5CNFSM4HA4PBNKYY4TWWWK3TUL52HS4DFVREXG43VMVBW63
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AANMBMG4AWBK44VE4O4GYR3PYWN3BANCNFSM4HA4PBNA
.
ํ์ธ์ ์ํด ํ์ธํ๊ฒ ์ง๋ง ํค๋ณด๋ ๋จ์ถํค๋ ๊ตฌํํ๋ ค๋ฉด ์ฑ์ ๋งก๊ฒจ์ผ ํ๋ค๊ณ ์์ ํฉ๋๋ค. ๋๋ ์ด๊ฒ์ #21์ ๋ํ ์ ๊ทผ์ฑ ๊ทผ๊ฑฐ๋ก ์๋ํ๊ณ ์๋ก์ด ํค๋ณด๋ ๋จ์ถํค๋ฅผ ๋์ ํ๋ ๊ฒ์ Windows์์ ์ฃผ์ฅํ์ง ์์ ๊ฑฐ์ ๋ชจ๋ ๋จ์ถํค๊ฐ ์ด์ ์ฑ ์์ค์์ ์ฌ์ฉ๋์๊ธฐ ๋๋ฌธ์ ํ๋ ์ดํ๊ธฐ์๋ ์ํํ ๊ฒ์์ ๋๋ค. F6 bandwagon) - ํ์ง๋ง ์ฌ๊ธฐ์ ์ ์ด ํฌ์ปค์ค๊ฐ ์์ธ๋ฅผ ํ์ฉํ๋์ง ํ์ธํ๊ฒ ์ต๋๋ค!
๋น๋ 2018์ INotifyDataErrorInfo๋ฅผ ์ฌ์ฉํ์ฌ TextBox ์ปจํธ๋กค์ ๋ํ ์ ํจ์ฑ ๊ฒ์ฌ ์ํ๊ฐ ๋ฐํ๋ ๋์์ต๋๋ค.
์ด๊ฒ์ ํ์ฌ ํ
์คํธ ๋ฌธ์์ด์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๊ฑฐ๋ ๋ฌดํจํํ๊ธฐ ์ํด ๋ง์คํน๊ณผ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
ํธ์ง: ์์ด์ฝ๊ณผ ๋ ๋๊บผ์ด ํ๋จ ํ ๋๋ฆฌ ์์์ ์ฌ์ฉ์ ์๋งน ์ํฉ๊ณผ ํ๋ฐฑ์ผ๋ก ๋ณผ ๋ ์ธ์์ ๋๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ๊ณต๊ฐ์ด ๋ถ์กฑํ ๊ฒฝ์ฐ ํ๋จ ์ค๋ฅ ํ ์คํธ๊ฐ ์์ด์ฝ์ ํดํ์ผ๋ก ํ์๋ ์ ์์ต๋๋ค.
@mdtauk ๋น์ ์ ์ด๋ฌํ ๋งํฌ์ ์ ๊ฒฝ์ด
@SavoySchuler ๋น๋ 2018์ ํ์๋ ์์ ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์ฌ์ด ์ธ์ฝ
๊ทธ๋ฆฌ๊ณ ๋ง์ ์์ ๋ฅผ ๋ณผ ์ ์์ต๋๋ค :)
์ฃ์กํฉ๋๋ค. ์ด๊ฒ์ ๋ ๋ค๋ฅธ ๊ธด ๊ฒ์ ๋๋ค!
@SavoySchuler @adrientetar ์๋ ์ง์ ์์ ๊ทํ๊ฐ ์ด๋์์ ์๋์ง ํ์คํ ์ ์ ์์ต๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์ฃผ์ฅํ์ง๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ซ์๋ง ์ ๋ ฅํ๋ ๊ฒ์ด ๋งค์ฐ ๋ช ๋ฐฑํ ๋ช ๊ฐ์ง ํน๋ณํ ๊ฒฝ์ฐ๊ฐ ์๋ค๊ณ ์๊ฐํด์ผ ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์๋ชป๋ ๋ฌธ์๋ฅผ ๋ฑ๋ฑํ๊ฒ ํ๊ฑฐ๋งํ์ง ๋ชปํ๋๋ก ํจ์ผ๋ก์จ ์ค์ ๋ก ์ฌ์ฉ์์๊ฒ ํธ์๋ฅผ ๋ฒ ํ๊ณ ์์ต๋๋ค.
๋ง์คํน์ ์ต์ข ์ฌ์ฉ์๊ฐ ํค๋ณด๋ ์ ๋ ฅ์์ ์๋ฌด ์ถ๋ ฅ๋ ๊ฒฝํํ์ง ๋ชปํ ๋ ์ค๋ง์ค๋ฝ๊ณ ํผ๋์ค๋ฌ์ธ ์ ์์ต๋๋ค.
100% ๋์ํฉ๋๋ค. ๋ ๋์ ๋ฐฉ๋ฒ์ LosingFocus/EnterPressed์์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๊ณ ์ ๋ ฅ๋ ๊ฐ์ด ์ ํจ์ฑ์ ๊ฒ์ฌํ์ง ์๋ ๊ฒฝ์ฐ oldValue๋ฅผ ๋ณต์ํ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด LosingFocus/EnterPressed์์ ํธ๋ฆฌ๊ฑฐ๋๊ณ oldValue/newValue๋ฅผ ํฌํจํ๋ ์ ํธ๊ฐ ์๋ฒฝํ ์ด์ ์ ๋๋ค.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋๋์ง ์์๋ณด๊ธฐ ์ํด ๋ค๋ฅธ ์ฑ์ ๋๋ฌ๋ณด๊ธฐ๋ก ํ์ต๋๋ค. ์ฌ์ฉ์ ์ํธ ์์ฉ์ ๋ํด Microsoft๋ณด๋ค ๋ ๋ง์ ์ฐ๊ตฌ๋ฅผ ํ๋ ์ฌ๋์ ์์ ๊ฒ ๊ฐ์์ ๋ฐ์คํฌํฑ 64๋นํธ ๋ฒ์ ์ Word์ UWP ๋ฒ์ ์ OneNote๋ฅผ ์ฐจ๋ก๋ก ๊ฐ์ ธ์์ต๋๋ค. ๋ ๋ง์์ ๊ฑฐ์ ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ๋ถ๋ช ํ ์ซ์ ์ ๋ ฅ์ผ ๋ฟ์ธ ๊ธ๊ผด ํฌ๊ธฐ ๋๋ ๋ชจ์ ํฌ๊ธฐ ์ ๋ ฅ ์์์ ํ ์คํธ๋ฅผ ์ ๋ ฅํ ์ ์์ต๋๋ค. ์ด์ ์์ค์ ํฌ๊ฒ ํ์ธํ๊ณ ๋ง์ง๋ง ์ ํจํ ์ ๋ ฅ์ผ๋ก ๋๋๋ฆฝ๋๋ค.
| ์ ๋ชฉ | ๊ทธ๋ฆผ | ๋๊ธ |
|---------|-----|------------|
| UWP OneNote ๊ธ๊ผด ํฌ๊ธฐ ํญ๋ชฉ | | ๋ชจ๋ ๊ฐ์ ํค๋ณด๋์์ ์
๋ ฅํ ์ ์์ผ๋ฉฐ ์๋์ผ๋ก ์ ํจ์ฑ์ด ๊ฒ์ฌ๋๊ณ ์ด์ ์ ์์ ๊ฒฝ์ฐ ๋ง์ง๋ง ์ ํจํ ๊ฐ์ผ๋ก ์ฌ์ค์ ๋ฉ๋๋ค. |
| ๋ฐ์คํฌํ ๋จ์ด ๊ธ๊ผด ํฌ๊ธฐ ํญ๋ชฉ | | ํค๋ณด๋์์ ๋ชจ๋ ๊ฐ์ ์
๋ ฅํ ์ ์์ผ๋ฉฐ ์ด์ ์ ์์ผ๋ฉด ์๋์ผ๋ก ์ ํจ์ฑ์ด ๊ฒ์ฌ๋๋ฉฐ ์ ํจํ์ง ์์ ๊ฒฝ์ฐ ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ํ๋ฉ๋๋ค. [ํ์ธ]์ ํด๋ฆญํ๋ฉด ๋ง์ง๋ง ์ ํจํ ๊ฐ์ผ๋ก ์ฌ์ค์ ๋ฉ๋๋ค. |
| UWP OneNote 2D ๊ทธ๋ํ | | ์ด๋ค ๊ฐ์ด๋ ํค๋ณด๋์์ ์
๋ ฅํ ์ ์์ต๋๋ค. ์ ํจํ์ง ์์ ๊ฐ์ ๋ฌด์๋๊ณ ๊ณ์ฐ์ ๋ง์ง๋ง ์ ํจํ ์
๋ ฅ์ด ์ฌ์ฉ๋ฉ๋๋ค(์ด์ ์์ค ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ์ง ์์). ์ฆ๊ฐ +/- ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ง์ง๋ง ์ ํจํ ์
๋ ฅ์ ์ฌ์ฉํ์ฌ ์ฆ๊ฐํฉ๋๋ค. |
| ๋ฐํ ํ๋ฉด ๋จ์ด ๋ชจ์ ํฌ๊ธฐ ํญ๋ชฉ | | ํค๋ณด๋์์ ๋ชจ๋ ๊ฐ์ ์
๋ ฅํ ์ ์์ผ๋ฉฐ ์ด์ ์ ์์ผ๋ฉด ์๋์ผ๋ก ์ ํจ์ฑ์ด ๊ฒ์ฌ๋๊ณ ์ด์ ์ ์์ผ๋ฉด ๋ง์ง๋ง ์ ํจํ ๊ฐ์ผ๋ก ์ฌ์ค์ ๋ฉ๋๋ค. |
๊ทธ๋์ ๋๋ ๋ด๊ฐ ํ๋ ธ๋ค๋ ๊ฒ์ ์ฆ๋ช ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฆ, ๋น์ ๊ณผ ๋์ํด์ผํฉ๋๋ค!
์ฌ์ด๋ ์ฝ๋ฉํธ:
- ์ ์ฌ์ฉ์๊ฐ NumberBox์ "2"๋ฅผ ์ ๋ ฅํฉ๋๋ค.
- NumberBox๋ ์ซ์๊ฐ ์๋ ์ ๋ ฅ์ "0"์ผ๋ก ๋ฐํํ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํ๋ "ValueChanged" ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํต๋๋ค. ์๋ฌด๋ฐ ์กฐ์น๋ ์ทจํ์ง ์์ผ๋ฉด...
- NumberBox์ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ๋นจ๊ฐ์์ผ๋ก ๋น๋๊ณ ์ซ์ ์ ๋ ฅ๋ง ํ์ฉ๋จ์ ์๋ฆฌ๋ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ฌ์ฉ์์๊ฒ ํ์ํฉ๋๋ค(์ด ๋ถ๋ถ์ ์์ง ์์ ํ ํฉ๋ฆฌํ๋์ง ์์์ผ๋ฏ๋ก ์ด๊ฒ์ ๊ฐ์ค์ผ ๋ฟ์ ๋๋ค).
์ด ์ผ๋ จ์ ์ด๋ฒคํธ๋ฅผ ํตํด ์์ฑํ๋ ๋ฐ ํ์ํ ๊ฒฝํ์ ์์ฑํ ์ ์์ต๋๊น?
๋น์ ์ ์๊ฐ์ ๋ฌด์์ ๋๊น? ๊ฐ๋ฅํ๋ค๋ฉด ์ด๋ฌํ ๊ฐ๋ ์ ์ถ๊ฐ๋ก ๊ตฌ์ฑํ๊ฑฐ๋ ๋ ๋์ ๊ฒฝํ์ ๊ตฌ์ถํ๊ธฐ ์ํ ์์ด๋์ด์ ๊ด์ฌ์ด ์์ต๋๋ค.
์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ์ ์ฒด ํ๋ซํผ์ ์ข๋ค๋ ์ ์ ์์ ํ ์ดํดํ๊ณ ๋์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ณธ์ง์ ์ผ๋ก ์ซ์์ ๋ํ ํน๋ณํ ์ฒ๋ฆฌ ์์ด ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ค๋ช ํ์ต๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ ์๋์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์ํ๋ ๊ฒ ์ธ์ NumberBox๊ฐ ๋ฌด์จ ์์ฉ์ด ์์ต๋๊น? ๊ฐ๋ฐ์๋ก์ ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ํฌํจ๋ TextBox๋ ๊ฑฐ์ ๋์ผํฉ๋๋ค.
์์ ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ์ฐ๋ฆฌ์ ์์ด๋์ด์ @adrientetar ๊ฐ ๋งํ๋ ๊ฒ์ ํผํฉ์ด์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฌ์ฉ์๋ ์๊ฐ์ ํผ๋๋ฐฑ์ ๋ฐ์ ์ ์๋๋ก ์๋ฌด ๊ฐ์ด๋ ์ ๋ ฅํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์์ค ์ด์ ์์ ๊ฐ์ ์๋์ผ๋ก ์ ํจ์ฑ์ด ๊ฒ์ฌ๋๊ณ ์ด์ ์ ์ ํจํ ์ซ์(๋๋ ๋น์ด ์์)๋ ์๋์ผ๋ก ๋๋์๊ฐ๋๋ค. ์ด๊ฒ์ ๊ฐ๋ฐ์๊ฐ ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ์ง์ ์ฒ๋ฆฌํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ ๋์ด์ค๋๋ค(์ฐ๋ฆฌ๋ ์ด๋ฏธ NumberBox์ ์ซ์์ฌ์ผ ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค). ๋ํ ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ํฌํจ๋ TextBox์ ๋ช ํํ๊ฒ ๊ตฌ๋ณ๋ฉ๋๋ค.
์ด๋ฒคํธ ์ธก๋ฉด์์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ๋ ๋ช ํํด์ง๋ฉด ํ ์คํธ ๋ณ๊ฒฝ์ ์ทจ์ํ ์ ์๋ ๊ธฐํ๋ฅผ ๊ฐ๊ณ ์ถ์ต๋๋ค. ๋ฐ๋ผ์ ValueChanged ์ธ์ ์ ๋ ฅ์ ๋น๊ต ๋ฐ โโ์ทจ์ํ ์ ์๋๋ก ValueChanging ๋ฐ TextChanging ์ด๋ฒคํธ๋ฅผ ๊ถ์ฅํฉ๋๋ค. ํ์คํ OldValue์ NewValue๋ ๊ด๊ณ์์ด ํ์ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ต์ํ ํ์ํ ๊ฒฝ์ฐ ๋ค์ OldValue๋ก ๋น ๋ฅด๊ฒ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค(UWP๋ ์ด๋ฒคํธ ๋ด์์ TextValue๋ฅผ ์์ ํ ๋ ์ถฉ๋ํ๋ ๊ฒ์ ์ข์ํ์ง๋ง).
์ฌ์๊ณผ ๊ด๋ จํ์ฌ: DecimalPrecision์ ๋ํ ์ข์ ์์ด๋์ด๊ฐ ์์ง๋ง ๊ฒํ ํ๊ณ ๋ด ์๊ฒฌ์ ์ถ๊ฐํ๋ ค๋ฉด ๋ ๋ง์ ์๊ฐ์ด ํ์ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ String=Empty, Value=Null์ด์ด์ผ ํ๊ณ ์ฆ๋ถ +/- ๋ฒํผ์ ๋๋ ์ ๋ ๊ฐ์ด ๋น์ด ์๋ ๋์ 0์ผ๋ก ์ฒ๋ฆฌ๋์ด์ผ ํ๋ ๊ฒ๊ณผ ๊ฐ์ ์์ ๋์์ค๊ฐ ๋ง์ด ์์ต๋๋ค.
@mdtauk ์ด๋ ๊ฒ ์ข์ ์ผ๋ฌ์คํธ๋ฅผ ์ด๋ ๊ฒ ๋นจ๋ฆฌ ๋ง๋ค
@roblo ์น์ ํ ๋๊ธ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ๋น์ ์ +/-์ ๊ดํด ๊ฐ๋จํ ํ ๋ง์ด ์์ต๋๋ค
์ด NumberBox๊ฐ ์ํํ ์ ์๋ ์ํ์ ์ฐ์ฐ๊ณผ ํผ๋์ ํผํ๊ธฐ ์ํด ํ์ฌ ์คํ ๋ฒํผ์ ์ฌ์ฉ๋๋ Up ๋ฐ Down ๊ธฐํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ๋์ ์ ์์ต๋๋ค.
iOS๋ "์คํ
ํผ" ์ปจํธ๋กค์ ์ฌ์ฉํ์ง๋ง ํ
์คํธ ์
๋ ฅ์ ๋ณ๋์ด๋ฉฐ ์ธ๋ผ์ธ ๊ณ์ฐ์ด ์์ต๋๋ค.
์ฌ๊ธฐ ๋ด๊ฐ ์ฐพ์ ๋ช ๊ฐ์ง ๋ ๋ง์ ๋์์ธ์ด ์์ต๋๋ค
๋ด๊ฐ ์ ํํ ๋์์ธ์ ์ด ์ปจํธ๋กค์ ๋ํ Microsoft์ ์ผ๋ฐ์ ์ธ ์คํ์ผ์ ๋ง๋ ๊ฒ ๊ฐ์ง๋ง ์ต์ ์ ์ ํ์ ๋๊น ์๋๋ฉด ์ฌ๋ฐ๋ฅธ ์ ํ์ ๋๊น? ๋ค๋ฅธ ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ๋์ง ๋ฃ๊ณ ์ถ์ต๋๋ค.
ํธ์ง: ๋์ฒด ์์์ ์ผ๋ถ ๋ชจํ์ ์ถ๊ฐํ์ต๋๋ค(ํ์ง๋ง ์ฒซ ๋ฒ์งธ ์์ด๋์ด๊ฐ ๊ฐ์ฅ ์ข๋ค๊ณ ์๊ฐํฉ๋๋ค...)
+/- ์์น์์ @mdtauk ์ ๋์ํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์์น๊ฐ ๊ฐ์ฅ ์ข์ต๋๋ค.
XAML ControlTemplate์ด ์์ผ๋ฏ๋ก ์ฌ์ฉ์(๊ฐ๋ฐ์)๋ ํญ์ ๋ค๋ฅธ ๋ ๋ ์ด์์์ ๋ํ ์ฌ์ฉ์ ์ง์ ํ ํ๋ฆฟ์ ๋ง๋ค ์ ์์ต๋๋ค.
@robloo , ๋น์ ์ ์์ธํ ๋ต๋ณ์ ๋ํด ์ฌ๊ณผํ ํ์๊ฐ ์์ต๋๋ค - ํนํ ๊ทธ๋ค์ด ๋ช ๊ฐ์ง ์ข์ ์์์ ํฌ์ฅํ ๋! ํฐ์น/๊ฐ์ ํค๋ณด๋์ ๋ํ ํ์ํ ์์ด๋์ด - ๊ฐ๋ฐ์/ํ์์ ์คํํ๋๋ก ์ฌ์์ ๊ณต๊ฐ ์ง๋ฌธ ์น์ ์ ์ถ๊ฐํ์ผ๋ฉฐ ํ์ฉํ ์ ์๋ ์ฑ๋ฅ ์ค๋ฒํค๋๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํ ์ ์๋ค๋ฉด ๊ทธ๊ฒ์ ์ฌ์ฉ์๋ค์๊ฒ ๊ต์ฅํ ํธ๋ฆฌํจ์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋น์ ์ ๊ฒ์ฆ์ ๋ํ ํ๋ฅญํ ์์ ์ ์ ์ํฉ๋๋ค ...
์๊ฐ์ ์ผ๋ก ๊ฒ์ํ ์์ ์์ ๋ถ๋ฆฌ๋ UpDownButtons์ ์ฅ์ ์ ๋ด ๋๋ค. ๋๋ @mdtauk ์ @sonnemaf ๊ฐ ๊ธฐ๋ณธ๊ฐ์ ๋ํ ์ฌ๋ฐ๋ฅธ ๊ธธ์
๋ถ๋ฆฌ๋ UpDownButton์ ๋ํ ์๋๋ฆฌ์ค๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ด ๋ง์์ ์ต์ํ์ ๋จ๋ฐฉํฅ ์ ๋ ฅ์ ๊ธฐ๋ํ๋ ์์ ์ด๋ ๊ฐ๋ฐ์๊ฐ ์ ๋ ฅ ์ค์๋ฅผ ๋ ์ด๋ ต๊ฒ ๋ง๋๋ ์์ ์ผ๋ก ์ด๋ํฉ๋๋ค. ๋๋ ์ด๊ฒ์ด ์๋ฅผ ๋ค์ด ์ํ๋ ์ฝ์ํธ ํฐ์ผ์ ๊ตฌ๋งคํ ๋ ์ฌ๋ฌ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ์น ์ฌ์ดํธ์์ ์ ๊ณตํ๋ ๊ฒฝํ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ ์ ์ง๋ฌธ์...
Fluent Design System ์ง์นจ์ด ์ด ๋ ๋ฒ์งธ ์ง๋ฌธ์ ๋ฌด์ํ ์ ์์ผ๋ฏ๋ก ์ด ์ง๋ฌธ์ ๋ํด @chigy ๋ฅผ ํํ ๊ฒ์ ๋๋ค.
UpDownButtons ๋ํ์ ๋ํ ์ ๊ทผ์ฑ ๊ณ ๋ ค ์ฌํญ์ ํฌํจํด์ผ ํฉ๋๋ค. UpDownButtons๊ฐ ์๋ก ๊ทผ์ ํ๋ฉด ๋ด๋ ์ดํฐ/ํ๋ฉด ํ๋ ๊ธฐ ์ฌ์ฉ์์๊ฒ ๊ฐ๋ ์ ๋ช ํ์ฑ์ ์ ๊ณตํ๋ ๋์์ ํค๋ณด๋ ํ์ ์ฌ์ฉ์๋ฅผ ์ํ ํ์ ํจ์จ์ฑ์ ์ ์งํ ์ ์์ผ๋ฉฐ ์ด๋ฅผ ํํํ์ง ์๋ ๊ฒ๋ ์ค์ํฉ๋๋ค.
์ปจํธ๋กค์ด ๋งค์ฐ ๋์ง ์์ ๊ฒฝ์ฐ ํ์ดํ๊ฐ ์์ง์ผ๋ก ์์ด๋๋ก ํ๊ณ ์ถ์ ๊ฒ์ ๋๋ค(๋ด ์ฑ์ ํ์ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค). ์ค์ ๋ ๋๋น์ ๋ฐ๋ผ ์ ์ด๊ฐ ๊ฐ๋ฅํ ๊น์? ๊ทธ๊ฒ์ด ์๋ฏธ๊ฐ ์๋ค๊ณ ์๊ฐํ๋ ๊ฒฝ์ฐ ๊ทธ๋ ๊ฒ ์ง์ ํ๋ ๊ฒ์ ์ ์ฐฝํ ๋์์ธ ์ง์นจ์ ๋ฌ๋ ค ์์ต๋๋ค.
์ปจ์ ๋์์ธ์ ํด์ฃผ์ @mdtauk๋ ๊ฐ์ฌํฉ๋๋ค!
@adrientetar ํ์ํ๋ค๊ณ ์ง์ ํด์ฃผ์ ์ ๊ธฐ์ฉ๋๋ค. ์ด ์ธ ๊ฐ์ง ๊ตฌ์ฑ์ ๋ํด ์ด๊ฑฐํ์ด ํ์ํ ๊ฒ ๊ฐ์ต๋๊น?
์ปจํธ๋กค์ด ๋งค์ฐ ๋์ง ์์ ๊ฒฝ์ฐ ํ์ดํ๊ฐ ์์ง์ผ๋ก ์์ด๋๋ก ํ๊ณ ์ถ์ ๊ฒ์ ๋๋ค(๋ด ์ฑ์ ํ์ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค). ์ค์ ๋ ๋๋น์ ๋ฐ๋ผ ์ ์ด๊ฐ ๊ฐ๋ฅํ ๊น์? ๊ทธ๊ฒ์ด ์๋ฏธ๊ฐ ์๋ค๊ณ ์๊ฐํ๋ ๊ฒฝ์ฐ ๊ทธ๋ ๊ฒ ์ง์ ํ๋ ๊ฒ์ ์ ์ฐฝํ ๋์์ธ ์ง์นจ์ ๋ฌ๋ ค ์์ต๋๋ค.
์ปจํธ๋กค์ด ์ฌ์ฉํ ์ ์๋ ๊ณต๊ฐ์ ์์ ์ธ์ํ๊ณ ๋ฐ์ํ๋๋ก ํ๋ ์ ์์ด ์์์ต๋๋ค. #677 ์ปจํธ๋กค์ด ์ข์์ง์ ๋ฐ๋ผ ์คํ ๋ฒํผ์ ์์น๋ฅผ โโ๋ณ๊ฒฝํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. MinWidth์ ์ ์ฌํ NarrowWidth ์์ฑ์ด ํ์ํ๊ฑฐ๋ ํํธ ์ญํ ์ ํ๋ NumberOfDigits๊ฐ ํ์ํ ์๋ ์์ต๋๋ค.
ํ์์ผ๋ก ํ์๋ ํ ์คํธ ์์ ๊ด๋ จํ์ฌ - ์ด๊ฒ์ด ์ต์ข ๊ฒฐ๊ณผ๊ฐ ๋ฌด์์ธ์ง์ ๋ํ ํํธ ์ญํ ์ ํ๊ธฐ๋ณด๋ค ์ฌ์ฉ์๊ฐ ํ์๋๋ ๊ฐ์ ์ฑ์ฐ๋๋ก ๋ถ์ถ๊ธธ ์ ์๋ค๋ ์ ์ ์ฐ๋ คํฉ๋๋ค. PlaceholderText์ฒ๋ผ ๋ณด์ ๋๋ค.
AccentColor์ ๋ค๋ฅธ ๊ธ๊ผด ๋๊ป๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ๋๊ฒ ๋ง๋๋ ๊ฒ์ ์ด๋ป์ต๋๊น?
ํ๋ฅญํ ๋งํฌ, @mdtauk. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ๊ฐ๋ ๊ธธ์ด๋ผ๋ฉด [Auto, Vertical, Horizontal, Detached]์ ๊ฐ์ ๊ฐ์ ๊ฐ์ง ์ด๊ฑฐํ์ผ๋ก ์ด๊ฒ์ ์ฒ๋ฆฌํ ์ ์๋ค๊ณ ์์ํฉ๋๋ค. ์๊ฐ?
๋ํ, ๋๋ ์ด๋ฏธ์ง๋ฅผ ์ ๋ฐ์ดํธํ์ต๋๋ค! ํ์์ผ๋ก ํ์๋ ํ ์คํธ๊ฐ ํ๋กฌํํธ์ฒ๋ผ ๋ณด์ผ ์ ์๋ค๋ ์๊ฐ์ด ์ณ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด ๋ฉ์์ง๋ฅผ ๋ฐ๋ฅด๋ฉด "="๋ก ์ธํด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
ํ๋ฅญํ ๋งํฌ, @mdtauk. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ๊ฐ๋ ๊ธธ์ด๋ผ๋ฉด [Auto, Vertical, Horizontal, Detached]์ ๊ฐ์ ๊ฐ์ ๊ฐ์ง ์ด๊ฑฐํ์ผ๋ก ์ด๊ฒ์ ์ฒ๋ฆฌํ ์ ์๋ค๊ณ ์์ํฉ๋๋ค. ์๊ฐ?
์ด๊ธฐ ์๊ฐ์ ์ปจํ ์ด๋์ ์ซ์๊ฐ ์์ง ๋ฐฉํฅ์ด ํ์ํ ๊ณณ์์ ์ถฉ๋ถํ ์ปค์ง ์ ์์๊น์? AutoCompleteBox๋ ๊ฒ์ ๋ฒํผ์ ์์ง์ด์ง ์์ผ๋ฉฐ ๋ฌธ์์ด์ ์ผ๋ฐ์ ์ผ๋ก ์ซ์๋ณด๋ค ๊น๋๋ค.
๊ทธ๊ฒ์ด ์์ ํ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ๊ตญํ๋ ๊ฒ์ด๋ผ๋ฉด ์๋ ์๋ต ๋์(ํด๋น ์ ์์ด ๊ณ์ ์งํ๋๋ ๊ฒฝ์ฐ)์ด ์ด๊ฑฐํ๋ณด๋ค ๋ซ์ต๋๋ค. ๊ฐ๋ฐ์์๊ฒ ์ปจํธ๋กค ์์ฒด์ ์ต์ ์ ์ ๊ณตํ๋ฉด ์ปจํธ๋กค์ ์ผ๊ด์ฑ ์๋ ์ฌ์ฉ์ผ๋ก ์ด์ด์ง ์ ์์ง๋ง, ์ด๊ฒ์ github์์ ์ฐ๋ฆฌ๊ฐ ๋จ๋ ์ผ๋ก ์ฒ๋ฐฉํ๋ ๊ฒ์ด ์๋๋ผ ์ฌ์ฉ์ ์ฐ๊ตฌ์์ ์ดํด๋ด์ผ ํ๋ ๊ฒ์ด์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ฐ๋ฐ์๋ ์ปจํธ๋กค์ ๋ํด _์ ๋ง_ ๋ค๋ฅธ ๋ ์ด์์์ด ํ์ํ ๊ฒฝ์ฐ ์ปจํธ๋กค์ ๋ค์ ํ ํ๋ฆฟํ ์ ์๋ ์ต์ ์ด ํญ์ ์์ผ๋ฉฐ, ์ํ๋ ๊ฒฝ์ฐ ์ด์ ๋ํ ๋์ฒด ์คํ์ผ ์ ํฌํจํ ์ ์์ต๋๋ค. A) ๊ธฐ๋ณธ๊ฐ๊ณผ ์์ง ์คํ์ผ ๋ฐ ํ ํ๋ฆฟ - ๋ฐ B) ๋ ์คํ์ผ์ด ๋ชจ๋ ์ฌ๋ฐ๋ฅด๊ฒ ํ ์คํธ๋๋๋ก ํฉ๋๋ค.
@mdtauk ์/์๋ ๊ธฐํธ๊ฐ ์ต๊ณ ๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค. ์ ๋ ์ ๋ ฅ์ ๋ฐ๋์ชฝ์ ํ์ดํ๊ฐ ์๋ ์๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์ถ์์ต๋๋ค. ์ด์ ์ ์ธ๊ธํ๋ฏ์ด ์ฌ์ฉ์๊ฐ ํฐ์น ๊ธฐ๋ฐ UI์์ ๊ฑฐ์ ํ์์ธ ์๋ชป๋ ํค๋ฅผ ๋๋ฅด์ง ์๋๋ก ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. OneNote์์ ์ ๊ณตํ ์์ ์๋ +/- ๊ธฐํธ๊ฐ ์์์ง๋ง ๊ธฐํธ ์์ฒด๋ฅผ ๋ฌด์ํ๋๋ก ์ถ๊ฐํ์ด์ผ ํ์ต๋๋ค.
@SavoySchuler
[2] ์ง๋ฌธ ์๊ฐ: ๋ถ๋ฆฌ๋ UpDownButton์ด ์๋ NumberBox๋ฅผ ์์ฑํ๊ธฐ ์ํด Xaml ControlTemplate์ ์์กดํด์ผ ํฉ๋๊น(์ฆ, ์ด๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์์ ์ ๋นํํ๊ธฐ์ ์ถฉ๋ถํ ์ผ๋ฐ์ ์ด์ง ์์) ๋๋ UpDownButton์ด ์ฐ์์ ์ผ๋ก ๋ํ๋๋์ง ์ฌ๋ถ๋ฅผ ์ค์ ํ๊ธฐ ์ํ ์์ฑ์ ํฌํจํด์ผ ํฉ๋๋ค. ๋ ๋ถ๋ฆฌ?
UWP๊ฐ ์ฒ์ ๋ง๋ค์ด์ก์ ๋ ํฐ์น๊ฐ ๋จผ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ถ๋ฆฌ๋ UpDownButton์ด ํ๋ฆผ์์ด ๋ ๋์ ๊ฒ์ ๋๋ค. ๊ทธ ์ดํ๋ก ํฐ์น ์ฐ์ ์๊ตฌ ์ฌํญ์ด ์ํ๋์์ผ๋ฉฐ ์ฌ์ฉ์๊ฐ ๋ง์ฐ์ค์ ๊ฐ์ ์ ํํ ์ ๋ ฅ ๋ฐฉ๋ฒ(์ด๋ ๊ฑฐ๋ฆฌ๊ฐ ์ ์)์ ์ฌ์ฉํ ๋ ์๋ก ์์ ์๋ ๋ฒํผ์ด ๋ ์ข์ต๋๋ค. ์ด๊ฒ์ ์ฌ์ฉ ์ฌ๋ก์ ๋ฐ๋ผ ๋ค๋ฅด๋ฏ๋ก ์ด๊ฑฐํ์ด UpDownButton์ด ํ์๋๋ ๋ฐฉ์์ ์ง์ ํ๋ ๋ฐ ์ ์ฉํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
์ด๊ฑฐํ ๊ฐ์ ๊ฒฝ์ฐ ์ฌ๋ฌ ์ํ์ ๋ํด ๋ ผ์ํ์ผ๋ฉฐ ์ผ๋ฐํํ๋ฉด ๋ช ๊ฐ์ง๋ฅผ ๋ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ด ๋ชจ๋ ๊ฒ์ด ๋๋ฌด ๋ณต์กํด์ง๋ฉด(๋น ๋ฅด๊ฒ๋) XAML์ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ์ปจํธ๋กค์ ๋ค์ ํ ํ๋ฆฟํํ ์ ์์ต๋๋ค.
๋ค๋ฅธ ์์ด๋์ด๋ฅผ ๋ฒ๋ฆฌ์๋ฉด, ๋ถ๋ฆฌ๋ UpDownButtons์ ๊ธฐํธ ๋ฐฉํฅ์ ๋ณ๊ฒฝํ๋ ๊ฒ๋ [<] 123 [>] ์ ์๋ฏธ๊ฐ ์์ ์ ์์ต๋๋ค. ์ฑ๋ณ๋ก ์คํ์ผ์ ๋ณ๊ฒฝํ ์ ์์ผ๋ฏ๋ก ์ด ์ถ๊ฐ๋ ๋ณต์ก์ฑ์ ๋ฌด์ํด๋ ๋ฉ๋๋ค.
๋ํ ์ ๊ทผ์ฑ ๋ฌธ์ ์ค ์ผ๋ถ๋ ๋ด๊ฐ ์์ ๋ฅผ ๊ฐ์ ธ์จ OneNote์์ ์ด๋ฏธ ํด๊ฒฐ๋์์ ์ ์์ต๋๋ค.
@robloo ๊ทํ๊ฐ ์ธ๊ธํ ์ผ์ชฝ ๋ฐ ์ค๋ฅธ์ชฝ ๋ฐฐ์น๋ ์ ์คํ ์ค์ ๋ณด๋ค๋ RtL ๋ฐ LtR ํ์งํ๋ฅผ ์ํด ์ ์ง๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์๋๋ ์ ์๊ฒฌ์ ๋๋ค
๋ํ ํ ์คํธ ํ๋ ์์ ๋ฒํผ์ ๋ฐฐ์นํ๋ ๊ฒ์ด ์๋ฏธ์ ์๋ฏธ๊ฐ ์๋์ง ํ์ ํ ์ ์์ต๋๋ค. ๋ฒํผ์ ์๊ฐ๋ฝ์ ๋๊ณ ์์ ๋ ์ซ์๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒ์ ๋ณด๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ค ์๋ ์์ต๋๋ค.
๋ชจ๋ ์กฐํฉ์ ์ปจํธ๋กค์ ํฌํจํ๋ฉด ํผ๋์ค๋ฌ์ด ์ฌ์ฉ์ด ๋ฐ์ํ ์ ์์ผ๋ฉฐ ๊ธด๊ธํ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ ํ ํ๋ฆฟ์ ๋ค์ ์์ฑํ์ฌ ์ด๋ฌํ ๋ชจ๋ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
ํ ์คํธ ํ๋ ์๋์ ๋ฒํผ์ ๊ณต๊ฐ์ด ์ ํ๋ ์์ญ์์ ์ด๋ ์ ๋ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ปจํธ๋กค ์์ฒด์ ์ต์ ์ผ๋ก ํญํ ์ ์๋ ๋ฒํผ์ด ํจ์ฌ ์ปค์ง๋๋ค. ๊ทธ๊ฒ์ด ์ปจํธ๋กค๊ณผ ํจ๊ป ๋ฒ๋ค๋ก ์ ๊ณต๋๋ ์คํ์ผ์ธ์ง, ์๋๋ฉด ๋ค์ ์ฌ์ด์ ์ด๊ฑฐํ ์ธ์ง ์ฌ๋ถ:
NumberBox.SpinButtonOrientation = SpinButtonOrientation.Horizontal
NumberBox.SpinButtonOrientation = SpinButtonOrientation.Vertical
๊ฐ๋จํ ์ง๋ฌธ์ผ๋ก ๊ฐ๋ฅํ ์ ์: ์ด๋ก ์ ์ผ๋ก ์ซ์ ์์์์๋ ์ซ์ ์์์๋ง ์ซ์๋ฅผ ์ ๋ ฅํ ์ ์์ด์ผ ํฉ๋๋ค. ์ฐ์ฌ์ง ์ซ์๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ์ด ํ๋์ ์ค์ ์ซ์๋ก ๋ณํํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ด๋ ค์ธ๊น์?
์๋ฅผ ๋ค์ด:
ํ๋ + ๋ = 3
๋ฒ์ญํ๋ค
1 + 2 = 3
๋๋
ํ๋ ๋ํ๊ธฐ ๋์ ์
๋ฒ์ญํ๋ค
1 + 2 = 3
๊ทธ๋ฅ ์์ด๋์ด์ ๋๋ค.
๊ฐ๋จํ ์ง๋ฌธ์ผ๋ก ๊ฐ๋ฅํ ์ ์: ์ด๋ก ์ ์ผ๋ก ์ซ์ ์์์์๋ ์ซ์ ์์์๋ง ์ซ์๋ฅผ ์ ๋ ฅํ ์ ์์ด์ผ ํฉ๋๋ค. ์ฐ์ฌ์ง ์ซ์๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ์ด ํ๋์ ์ค์ ์ซ์๋ก ๋ณํํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ด๋ ค์ธ๊น์?
์๋ฅผ ๋ค์ด:
ํ๋ + ๋ = 3
๋ฒ์ญํ๋ค
1 + 2 = 3๋๋
ํ๋ ๋ํ๊ธฐ ๋์ ์
๋ฒ์ญํ๋ค
1 + 2 = 3๊ทธ๋ฅ ์์ด๋์ด์ ๋๋ค.
๊ทธ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์์ด์ ๊ฒฝ์ฐ. ๋ค๋ฅธ ์ธ์ด๋ก ํด๋น ๋ฌธ์์ด์ ๋ฒ์ญํ๊ณ ๊ตฌ๋ฌธ ๋ถ์ํด์ผ ํ ๋ ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋๋์ด ์ฌ์ฉ์๋ ์์ด ๋จ์ด๋ฅผ ์ ๋ ฅํ๋ฉด ์ด๋ป์ต๋๊น?
ํ์ฌ๋ก์๋ ์ซ์ 0-9, ์์, ์ซ์ ๊ตฌ๋ถ ๊ธฐํธ ๋ฐ ์ํ ์ฐ์ฐ์์ ํ์๋ง ๋ ผ์๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ๋ฒํธ ์ฒด๊ณ๋ฅผ ์์ฉํด์ผ ํ ์๋ ์์ต๋๋ค.
์ธ์ด ๋ฒ์ญ์ ์ถ๊ฐํ๋ ๊ฒ์ ํฐ ๋ ธ๋ ฅ์ด ๋ ๊ฒ์ด๋ฉฐ ์ด์ ์ด ๋ฌด์์ธ์ง ๋ช ํํ์ง ์์ต๋๋ค.
์ด์ ์ด ์ปจํธ๋กค์ด ์ค๋์ค ์ ๋ ฅ์ผ๋ก ์กฐ์๋์ด์ผ ํ๋ฏ๋ก ์ซ์๋ ์์ ์ ๋งํด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋งํ๋ ์ธ์ด๋ฅผ ํด์ํ๋ ์์ ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
๋๋ ์ดํฐ:
"๊ฐ์ด ์๋ Pixels NumberBox"
์ฌ์ฉ์:
"๋ฐฑ์ด์ญํ ํฝ์
"
[ 128 ____________ | ํฝ์ ]
์ฌ์ฉ์:
"64ํฝ์
์ถ๊ฐ"
[ 192 ____________ | ํฝ์ ]
๋๋ ์ดํฐ:
"๋ฐฑ๊ตฌ์ญ์ด ํฝ์
"
[1] ์ง๋ฌธ ์๊ฐ: ๊ฐ๋ฐ์๊ฐ ์ด ๋์์ ์ทจ์ํ๊ณ ๋์ ์ํํ ์์ /์ค๋ฅ ํ์๊ธฐ ๋๋ ๋ฉ์์ง๋ฅผ ํ์ํ ์ ์๋ ์ด๋ฒคํธ๋ฅผ ๋ ธ์ถํ๋ฉด์ ํ์ฉ๋์ง ์๋ ์ ๋ ฅ์ ์๋์ผ๋ก ์ด์ ๊ฐ์ผ๋ก ๋๋๋ฆฌ๋ ์ ํจ์ฑ ๊ฒ์ฌ ์์คํ ์ ๋ฐ๋ํ๋ ์ฌ๋์ด ์์ต๋๊น?
์
๋ ฅํ ํ
์คํธ ๊ฐ ์ ํจํ์ง ์์ ๊ฒฝ์ฐ ๊ฐ ์ด ์ด์ Value
"๋ฅผ ์ ์งํ๋ ค๋ ๊ฒ์ ์ปจํธ๋กค์ด ์ฑ
์์ ธ์ผ ํ๋ ์ผ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์ปจํธ๋กค์ด ๋จ์ผ ํ์ฌ ๊ฐ(๋๋ ์ค๋ฅ ์ํ)์ ์ฒ๋ฆฌํ๋๋ก ํ๊ณ ์ฑ์ด ValueChanged
์ด๋ฒคํธ๋ฅผ ํตํด ํ์์ ๋ฐ๋ผ ์ถ๊ฐ ๊ธฐ๋ก ์ฒ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๋๋ก ํฉ๋๋ค.
์ด๊ธฐ ๋ฒ์ ์ ๊ฒฝ์ฐ ์/์๋ ๋ฒํผ์ ๋จ์ผ ์์น๋ฅผ ์ง์ํ๋ ๊ฒ์ด ํ์ํ ๊ฒฝ์ฐ ๋ค์ ํ
ํ๋ฆฟํ ์ ์์ผ๋ฏ๋ก ๊ด์ฐฎ์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
Up/Down ๋ฒํผ์ ์์น๋ฅผ โโ๊ฒฐ์ ํ๋ ๊ธฐ๋ฅ์ด ํ์๋ก ๊ฐ์ฃผ๋๋ ๊ฒฝ์ฐ ์ถ๊ฐ๋๋ ๋ชจ๋ ์ด๊ฑฐํ์ UpDownButtonsEnabled
์์ฑ์ ๊ฐ์ง ํ์๋ฅผ ์ ๊ฑฐํด์ผ ํ๋ฉฐ ์ด๊ฑฐํ ๊ฐ์ Hidden
์ ์์ต๋๋ค. ๋์ ์ถ๊ฐํ์ต๋๋ค.
๋ํ Up/Down ๋ฒํผ์ ์์น๋ฅผ โโ์กฐ์ํ๊ธฐ ์ํ ์ง์ ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์์ผ๋ฉด ์ ๊ณต๋ ์ต์
์ด์ธ์ ํญ๋ชฉ์ ๋ํด ํ
ํ๋ฆฟ์ ์กฐ์ ํด์ผ ํ๋ ์ฌ๋์ด ๋ณต์กํด์ง๋๋ค.
@shaheedmalik , ํ๋ฅญํ๊ณ ์ง๊ด์ ์ธ ์์ด๋์ด์ ๋๋ค. ์คํ์ ํ์ธํ์ จ๋์? ์ ๋ ฅ์ ๊ฐ๋ก์ฑ์ ์๋์ผ๋ก ์ ๋ ฅ๋ ์ซ์๋ฅผ ์ซ์ ๊ฐ์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์๋ ValueChanged ์ด๋ฒคํธ๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ ํนํ ํน์ ์ธ์ด๋ฅผ ์ผ๋์ ๋ ๊ฒฝ์ฐ ์์ฑํ ์ ์๋ ๊ฒฝํ์ด ๋ ๊ฒ์ ๋๋ค. ์ปจํธ๋กค์ ๊ธฐ๋ณธ V1์์ ์ ์ญ ์ธ์ด ํ์๋ฅผ ๊ตฝ๋ ๊ฒฝ์ฐ - @mdtauk ๊ฐ ๋ง์ต๋๋ค. ์ด๋ ์๋นํ ์ ๋น์ฑ์ ํ์๋ก ํ๋ ๋ณต์ก์ฑ๊ณผ ์ค๋ฒํค๋๋ฅผ ์ถ๊ฐํ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ์ปจํธ๋กค์ ์คํ ์์ฑํ ๋์ ์ด์ ์ ์ปค๋ฎค๋ํฐ์์ ๋ถ๊ธฐํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด ๊ฒฝ์ฐ ์ฌ๊ธฐ์์ ์ฌ์ฉ์ ๋๋ ๋ค๋ฅธ ์ปค๋ฎค๋ํฐ ๊ตฌ์ฑ์์ด ์ด ์ปจํธ๋กค์ ์ธ์ด๋ณ ๋ณํ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ด๊ฒ์ด NumberBox์ ์ธ์ด ํ์ฑ ๋ฒ์ ์ ๋ฏผ์ฃผํํ๋ ๊ฐ์ฅ ํ์ค์ ์ธ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@mrlacey , Windows ์ ์ฒด์์ ์ฌ์ฉ๋๋ NumberBox์ ์ ์ฌํ ์ปจํธ๋กค ์ ๋ํ @robloo ์ ๋น๊ต ๋ถ์ ์ ๊ฒํ ํ ๊ธฐํ๊ฐ ์์์ต๋๊น? ์ด ํ๋๋ฅผ ๋ง์ง๋ง ์ ํจํ ์ซ์ ์ ์ฉ ์ ๋ ฅ์ผ๋ก ์ฌ์ค์ ํ๋ ๋์์ ์ค์ ๋ก ์์คํ ์ ๋ฐ์ ๊ฑธ์ณ ์ ๋ก๊ฐ ์์ต๋๋ค. ์ฆ, ์ปจํธ๋กค ์์ฒด ๋๋ ๊ฐ๋ฐ์ ์ง์นจ์ด ์ด ํจํด์ ๋ง๊ฒ ์กฐ์ ๋์ด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ๋ด ์๋๋ ์ด ์ ์ด๋ฅผ ํ์ค Windows ํ๊ฒฝ๊ณผ ์ผ๊ด์ฑ ์๊ฒ ์ ๋ ฌํ๊ณ ์ํ๊ณ์ ๋๋จธ์ง ๋ถ๋ถ์์ ๋ฒ์ด๋๋ ๋์์ ํ์คํํ๊ณ ํ์๊ฐ ์์ฑํ ์ด ์์คํ ๊ธฐ๋ณธ ๋์์ ์์ฑํ๊ธฐ ์ํ ์ง์นจ์ ์ฃผ์ฅํ๋ ๊ฒ๊ณผ๋ ๋ฐ๋๋ก ํ์ํ ํธ์ฐจ์ ๋ํ ๊ธธ์ ๋ง๋๋ ๊ฒ์ ๋๋ค. ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ์ ์ฝ๊ณ ํจ์จ์ ์ ๋๋ค. ๋๋ ์๊ฒฌ ๋ถ์ผ์น๋ฅผ ๊ถ์ฅํฉ๋๋ค. ๋ฐ๋ผ์ ์ด๊ฒ์ด ํต์ ์ ๋ถํ์ํ ๋ณต์ก์ฑ์ ์ถ๊ฐํ๋ค๊ณ ์๊ฐํ๊ฑฐ๋ ์๋ง๋ ์ด ์ ๋ก๋ฅผ ์ฌํ๊ฐํด์ผ ํ๋ค๊ณ ์๊ฐํ๋ค๋ฉด ์๋ ค์ฃผ์ญ์์ค.
| ์ ๋ชฉ | ๊ทธ๋ฆผ | ๋๊ธ |
|---------|-----|------------|
| UWP OneNote ๊ธ๊ผด ํฌ๊ธฐ ํญ๋ชฉ | | ๋ชจ๋ ๊ฐ์ ํค๋ณด๋์์ ์ ๋ ฅํ ์ ์์ผ๋ฉฐ ์๋์ผ๋ก ์ ํจ์ฑ์ด ๊ฒ์ฌ๋๊ณ ์ด์ ์ ์์ ๊ฒฝ์ฐ ๋ง์ง๋ง ์ ํจํ ๊ฐ์ผ๋ก ์ฌ์ค์ ๋ฉ๋๋ค. |
| ๋ฐ์คํฌํ ๋จ์ด ๊ธ๊ผด ํฌ๊ธฐ ํญ๋ชฉ | | ํค๋ณด๋์์ ๋ชจ๋ ๊ฐ์ ์ ๋ ฅํ ์ ์์ผ๋ฉฐ ์ด์ ์ ์์ผ๋ฉด ์๋์ผ๋ก ์ ํจ์ฑ์ด ๊ฒ์ฌ๋๋ฉฐ ์ ํจํ์ง ์์ ๊ฒฝ์ฐ ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ํ๋ฉ๋๋ค. [ํ์ธ]์ ํด๋ฆญํ๋ฉด ๋ง์ง๋ง ์ ํจํ ๊ฐ์ผ๋ก ์ฌ์ค์ ๋ฉ๋๋ค. |
| UWP OneNote 2D ๊ทธ๋ํ | | ์ด๋ค ๊ฐ์ด๋ ํค๋ณด๋์์ ์ ๋ ฅํ ์ ์์ต๋๋ค. ์ ํจํ์ง ์์ ๊ฐ์ ๋ฌด์๋๊ณ ๊ณ์ฐ์ ๋ง์ง๋ง ์ ํจํ ์ ๋ ฅ์ด ์ฌ์ฉ๋ฉ๋๋ค(์ด์ ์์ค ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ์ง ์์). ์ฆ๊ฐ +/- ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ง์ง๋ง ์ ํจํ ์ ๋ ฅ์ ์ฌ์ฉํ์ฌ ์ฆ๊ฐํฉ๋๋ค. |
| ๋ฐํ ํ๋ฉด ๋จ์ด ๋ชจ์ ํฌ๊ธฐ ํญ๋ชฉ | | ํค๋ณด๋์์ ๋ชจ๋ ๊ฐ์ ์ ๋ ฅํ ์ ์์ผ๋ฉฐ ์ด์ ์ ์์ผ๋ฉด ์๋์ผ๋ก ์ ํจ์ฑ์ด ๊ฒ์ฌ๋๊ณ ์ด์ ์ ์์ผ๋ฉด ๋ง์ง๋ง ์ ํจํ ๊ฐ์ผ๋ก ์ฌ์ค์ ๋ฉ๋๋ค. |
@mdtauk , LTR ๋ฐ RTL ์ธ์ด์ ๋ํ ๊ทํ์ ์๊ฒฌ๊ณผ UpDownButtons๊ฐ ๋ํ๋๋ ์ปจํธ๋กค ์ธก๋ฉด์ ์ฃผ๋ชฉํ์ญ์์ค. ํ์งํ ์ ๋ฌธ๊ฐ๊ฐ ์ด ์์ ์ ์คํํ์ฌ ์ด๊ฒ์ด ๊ณ ๋ คํด์ผ ํ ๊ณ ๋ ค ์ฌํญ์ธ์ง ํ์ธํฉ๋๋ค.
@mrlacey ๋ถ์ธ์ด ์ด๊ฑฐ ํ์ ์ค๋ณต๋๋ค๋ ๊ฒ๋ ๋ง์ต๋๋ค. ๋ค๋ฅธ ๊ตฌ์ฑ์ด ํ์ํ์ง ๊ณง ํ์ธํ๋๋ก ๋ ธ๋ ฅํ๊ฒ ์ต๋๋ค.
@adriantetar , ๋น์ ์ ์์ง ๋ฒํผ์ ์ฃผ์ ๊ณ ๊ฐ์ ๋๋ค. ๊ณต๊ฐ ์ ์ฝ์ ๋ ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ ์ ์๋ ํ๋ฉด ์บก์ฒ๋ ์ปจํ ์คํธ๊ฐ ์์ต๋๊น? @mdtauk ์ ์ด์ ์ ์ด ๋ต๋ณ์ผ๋ก ์๊ฐํ์ต๋๋ค.
์ด๊ธฐ ์๊ฐ์ ์ปจํ ์ด๋์ ์ซ์๊ฐ ์์ง ๋ฐฉํฅ์ด ํ์ํ ๊ณณ์์ ์ถฉ๋ถํ ์ปค์ง ์ ์์๊น์? AutoCompleteBox๋ ๊ฒ์ ๋ฒํผ์ ์์ง์ด์ง ์์ผ๋ฉฐ ๋ฌธ์์ด์ ์ผ๋ฐ์ ์ผ๋ก ์ซ์๋ณด๋ค ๊น๋๋ค.
@SavoySchuler (์ต์ข ๊ฐ์ผ๋ก ์ฌ์ค์ ํ๋ ๊ฒ๊ณผ ๊ด๋ จํ์ฌ) ์ฌ์์ด @robloo ๊ฒํ ์ ์ปจํธ๋กค๋ณด๋ค ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐ ๋ณด๊ณ ๋ฅผ ์ํด NumberBox์ ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๊ธฐ๋ฅ์ ๋ ๋ง์ด ๋ง๋ค๋ ค๊ณ ํ์ต๋๋ค.
์ด๊ฑธ ๊ณ ๋ คํ์ธ์:
AllowsCalculations=True
NumberBox5๋จ๊ณ์์ ๋ค์ ์ปจํธ๋กค๋ก ํญํ ๋ ๋ฐ์ํ๊ณ ์ถ์ ์ผ์
Text
๊ฐ์ผ๋ก ์ ์ง๋ฉ๋๋ค.ValueChanged
์ด๋ฒคํธ ํธ๋ฆฌ๊ฑฐ ๋ฐ ์ ๋ฌ๋จ(Text='99 x 12', OldValue=1100, NewValue=Double.NaN)์ ๋ ฅ ์ ๋ง์ง๋ง์ผ๋ก ์๋ ค์ง ์ํธํ ๊ฐ์ผ๋ก ์๋์ผ๋ก ๋๋๋ฆฌ๋ ค๋ ๊ฒฝ์ฐ:
ValueChanged
์ด๋ฒคํธ๊ฐ ์๋ชป๋ ์ํ์ ๋ํด ๋ณด๊ณ ํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ทธ ๊ฐ์น๊ฐ ํฌ๊ฒ ์ค์ด๋ค์ง ์์ต๋๊น?@SavoySchuler @mrlacey ๋ค๋ฅธ Microsoft ์ฑ์์ ์ด๋ฌํ ์๋ฅผ ๋ณด๋ฉด...
๋ชจ๋ฌ ํ์ ์ ์ ์ธ๋์ด์ผ ํฉ๋๋ค. ๋์ ์ด๊ฒ์ ์ปจํธ๋กค ์์ฒด์ ์ ํจ์ฑ ๊ฒ์ฌ ์ํ์ ์ํด ์ฒ๋ฆฌ๋์ด์ผ ํฉ๋๋ค.
์์
์ ํจํ์ง ์์ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ ๋ด์ฉ์ ํด๋น ์ ํจํ์ง ์์ ์ํ๋ก ๋จ์ ์์ด์ผ ํ์ง๋ง ์ปจํธ๋กค์ ํฌ์ปค์ค๊ฐ ์๋ ๋์์๋ง ๊ฐ๋ฅํฉ๋๋ค. ํฌ์ปค์ค๊ฐ ์์ค๋๋ฉด ํ ์คํธ ํ๋ ๊ฐ์ด ๋๋๋ ค์ง์ง๋ง ์ ํจ์ฑ ํ์ธ ์๋ฆผ์๋ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ด์ฉ์ด ํ์๋ฉ๋๊น?
InputScope: ์ซ์ ๋๋ FormulaNumber?
์์ ์ธ๊ธํ๋ฏ์ด(PR ์๊ฒฌ์์) FormulaNumber
์๋ ์ฌ๊ธฐ์ ์ฌ์์ ๋ชจ๋ ๊ณ์ฐ ์์ ์ ํฌํจ๋ '๊ณต๋ฐฑ'์ด ํฌํจ๋์ง ์์ต๋๋ค. FormulaNumber์๋ ์ด ์ปจํธ๋กค์์ ์ง์ํ์ง ์๋ ์ํ ๊ธฐํธ๋ ํฌํจ๋ฉ๋๋ค.
๋๋ '์ซ์'์ ํฌํํ๋ค
์ซ์
๊ณต์ ๋ฒํธ
@SavoySchuler ๋ด ๋ง์ ๋ฐ์คํฌํฑ ์ฑ์ ๋ง๋ค๊ณ ์๋ค๋ ๋ป์ ๋๋ค(๋ด ์์ ์ Excel ๋ฒ์ ์ด๋ ๋ค๋ฅธ ๊ฒ์ ๋ง๋ค๋ ค๊ณ ํ์ง ์์). ๋๋ ํ์ดํ๋ฅผ ์์ ํ ๋นํ์ฑํ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ง์ฐ์ค ๋๋๊ทธ๋ก ์ถฉ๋ถํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ง์ฐ์ค ๋๊ธฐ๊ฐ ๊ณํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ํด๋น ๊ฒฝ์ฐ ๊ฐ๋ฅํ ๋ณ๊ฒฝ ๋ฒ์๋ฅผ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๋ณ๊ฒฝ ์ ๊ฐ ๋ณ๊ฒฝ์ด ์คํ๋์ด์ผ ํฉ๋๋ค. ์ฌ์ด๋๋ฐ:
Btw TextBox ๋ด์ฉ์ ์ธ๋ก๋ก ์ค์์ ๋ฐฐ์น๋์ง ์์ผ๋ฉฐ ์ด๋ VerticalContentAlignment="Center"์ ๋๋ค.
Paint 3D๊ฐ ์ฌ์ฉํ๋ ์์ฑ ์ฌ์ด๋๋ฐ์ ๋น์ทํด ๋ณด์
๋๋ค(์ด๊ฒ๋ ๋ ์์ ํ
๋๋ฆฌ์ ์ ๋ฏธ์ฌ ์์ฑ์ฒ๋ผ ๋ณด์ด๋ ์์ฒด ์ปจํธ๋กค ์คํ์ผ์ ์ฌ์ฉํจ).
๋๋๊ทธ๊ฐ ๊ตฌํ๋์ง ์์ ๊ฒฝ์ฐ ํญ์ Paint 3D๊ฐ ์ํํ ์์
์ ์ํํ๊ณ ์ฌ๋ผ์ด๋๋ฅผ NumberBox์ ๋ฐ์ธ๋ฉํ ์ ์์ต๋๋ค.
๋ํ Adobe๊ฐ ์ปจํธ๋กค์ ๋๋กญ๋ค์ด ์ฌ๋ผ์ด๋๋ฅผ ์ฌ์ฉํ์ฌ ์ํํ๋ ์์
๊ณผ ์ ์ฌํฉ๋๋ค.
@adrientetar ๊ฑฐ๊ธฐ์์ ๊ณ ์ ํ ๋ฒ์ ์ NumberBox๋ฅผ ๋ง๋ค๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ธ๊ผด์๋ ๊ณ ๋ คํด์ผ ํ ๋์ผ๋๊ฐ ์์ผ๋ฏ๋ก TextBox์ ํ ์คํธ์๋ ๊ธฐ์ค์ ์ ๋ ฌ์ด ์์ต๋๋ค.
NumberBox์ ๊ฒฝ์ฐ ๋ฌธ์๊ฐ ์๊ฐ์ ์ผ๋ก ์ค์์ ๋ฐฐ์น๋๋ ๊ฒฝ์ฐ๊ฐ ์์ ์ ์์ง๋ง ์ด๋ฌํ NumberBox๋ ComboBox์ ๊ฐ์ ํ์ค TextBox ๋๋ TextBox ํ์ ์ปจํธ๋กค ์์ ๋ฐฐ์น๋ ๋ ์ ๋ ฌ๋์ง ์์ต๋๋ค.
๊ธฐ๋ณธ ํ ํ๋ฆฟ ๋ฐ ์คํ์ผ์ ๋ง๋ค ๋ ๋ค์ํ Windows.UI.Xaml.Documents.Typography ์์ฑ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค...
@mrlacey , ๋น์ ์ ์ ํจํ ์ฃผ์ฅ์ํฉ๋๋ค. @adriantetar ์ ์๋ต์ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ ์๋๋ฆฌ์ค๋
๊ฐ/ํ ์คํธ ๋ณ๊ฒฝ ์ด๋ฒคํธ๋ _every_ ๋ณ๊ฒฝ ์ ๋ฐ์ํ๋ฏ๋ก(๋๋๊ทธ/์คํฌ๋กค ์ฌ์ฉ์๊ฐ ๋ฒ์๋ฅผ ํ ์คํธํ๋ ๊ฒฝ์ฐ) ๋ฐ๋ผ์ "Enter"๋ฅผ ๋๋ฅด๊ฑฐ๋ ํฌ์ปค์ค๋ฅผ ์์ ๋๊น์ง ์ค๋ฅ ๋ฉ์์ง์ ํ์๊ธฐ๊ฐ ํ์๋๋ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ๊ณ์ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ ํจ์ฑ ๊ฒ์ฌ ๊ฐ ์ฌ์ ์๊ฐ ์์๋๊ณ ๋ง์ง๋ง ์ข์ ๊ฐ์ ๋ฎ์ด์๋๋ค(ํด๋น ์์ฑ์ ์ํด ํด๋น ๋์์ด ๋นํ์ฑํ๋์ง ์๋ ํ).
์ ๋ ์ค๋ ์คํ์ ํ๊ณผ ์ฑํ ํ์ฌ ์ง์์ ์ธ ์ด๋ฒคํธ ๋ฐ์/๊ฒ์ฆ์ด ํ์ค์ ์ธ ์์ด๋์ด์ธ์ง ๊ฒ์ฆํ ๊ฒ์ ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋ฒ์๋ฅผ ํ์ฅํ ์ ์์ต๋๋ค.
@mdtauk , ํ์ง๋ง ์ ํจ์ฑ ๊ฒ์ฌ์ ์๊ฐ์ ํํ์ ๋ํ ๊ทํ์ ์ฃผ์ฅ์ด ์ณ๋ค๊ณ ์๊ฐํฉ๋๋ค. @LucasHaines , ์ ๋ฅผ ๋ค์ ํ์ธํด ์ฃผ์๊ฒ ์ต๋๊น?
@jevansaks , ์๋ InputScope ๊ณ ๋ ค ์ฌํญ์ ๋ฌด๊ฒ๋ฅผ ์ค์ ์ ์์ต๋๊น?
์์ ์ธ๊ธํ๋ฏ์ด(PR ์๊ฒฌ์์)
FormulaNumber
์๋ ์ฌ๊ธฐ์ ์ฌ์์ ๋ชจ๋ ๊ณ์ฐ ์์ ์ ํฌํจ๋ '๊ณต๋ฐฑ'์ด ํฌํจ๋์ง ์์ต๋๋ค. FormulaNumber์๋ ์ด ์ปจํธ๋กค์์ ์ง์ํ์ง ์๋ ์ํ ๊ธฐํธ๋ ํฌํจ๋ฉ๋๋ค.๋๋ '์ซ์'์ ํฌํํ๋ค
์ซ์
๊ณต์ ๋ฒํธ
@SavoySchuler re this
๊ฐ/ํ ์คํธ ๋ณ๊ฒฝ ์ด๋ฒคํธ๋ ๋ชจ๋ ๋ณ๊ฒฝ(๋๋๊ทธ/์คํฌ๋กค ์ฌ์ฉ์๊ฐ ๋ฒ์๋ฅผ ํ ์คํธํ๋ ๊ฒฝ์ฐ)์์ ๋ฐ์ํ๋ฏ๋ก "Enter"๋ฅผ ๋๋ฅด๊ฑฐ๋ ์ด์ ์ ์์ ๋๊น์ง ์ค๋ฅ ๋ฉ์์ง์ ํ์๊ธฐ๊ฐ ํ์๋๋ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ๊ณ์ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ ํจ์ฑ ๊ฒ์ฌ ๊ฐ ์ฌ์ ์๊ฐ ์์๋๊ณ ๋ง์ง๋ง ์ข์ ๊ฐ์ ๋ฎ์ด์๋๋ค(ํด๋น ์์ฑ์ ์ํด ํด๋น ๋์์ด ๋นํ์ฑํ๋์ง ์๋ ํ).
ValueChanged
์ด๋ฒคํธ๋ Text
๋ณ๊ฒฝ๋ ๋๋ง๋ค๊ฐ ์๋๋ผ ์ค์ Value
๋ณ๊ฒฝ๋ ๋๋ง ๋ฐ์ํด์ผ ํฉ๋๋ค.
ํด๋น ๋์์ด ํด๋น ์์ฑ์ ์ํด ๋นํ์ฑํ๋์ง ์๋ ํ
์ด ์ ์์ฑ์ ๋ฌด์์ ๋๊น?
๋ง์ง๋ง์ผ๋ก ์๋ ค์ง ์ํธํ ๊ฐ์ผ๋ก ๋๋๋ฆด ๋ ์๋ชป๋ ๊ฐ ๋ฐ ์ค๋ฅ ์ํ๊ฐ ์์ค๋๋ ๋ฌธ์ ๋ฅผ ์ผ๋ง๋ ์์ฃผ ์ด๋ฒคํธ๊ฐ ํด๊ฒฐํ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ด๊ฒ์ด ์ค์ ๋ก ์ด๋ค ๊ฒ์ธ์ง ์ดํดํ๋ ค๋ฉด ์ฌ๊ธฐ์์ ์ฝ๊ฐ์ ์คํ์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. (์๊ฐ๋ง ๊ตฌํ ์ ์๋ค๋ฉด...)
๊ด๋ จ ๋ฉ๋ชจ์.
TextBox
์์ ์์๋ ๊ธฐ์กด TextChanged
์ด๋ฒคํธ๊ฐ ์๋น์๋ฅผ ์ํด ์์ ๋์ง ์๋๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ํ์ง๋ง TextChanging
์ด๋ฒคํธ๋ ์ด๋ป์ต๋๊น? ์๋ก์ด ์ ์ด ํน์ ์ฒ๋ฆฌ๊ฐ ์ํ๋๋ ๊ณณ์
๋๊น? ์ปจํธ๋กค์ ์๋น์๋ ์ด ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๊น?
๋์ํจ - ํ์ํ ๊ฐ์น๊ฐ ์์ง๋ง ํผํ ์ ์๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค. ์ ํจ์ฑ ๊ฒ์ฌ ์น์ ์ ์์ ํ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์๋ IsInvalidInputOverwrite ์์ฑ์ ์ถ๊ฐํ์ต๋๋ค. ๋ชจ๋๊ฐ ๋ค์์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํฉ๋๊น?
์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ์ ๋ ฅ ์ ์ฒด์์ ๋ฐ์ํด์ผ ํ๋์ง ์๋๋ฉด ์ดํ์ ๋ฐ์ํด์ผ ํ๋์ง์ ๋ํ ์ง๋ฌธ์ผ๋ก ์ด ์ค ๋ง์ ๋ถ๋ถ์ ์์ฝํ ์ ์์ต๋๋ค. ๋๋ ์ฑ๋ฅ์ ์ํด ๊ทธ๋ฆฌ๊ณ ์ ๋ ฅํ ๋ ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ๋ฐ๋ ๊ฒฝํ์ด ๊ฑฐ์ฌ๋ฆฌ๊ณ ์ ๊ทผํ๊ธฐ ์ด๋ ค์ธ ์ ์๊ธฐ ๋๋ฌธ์ ์ ํธํฉ๋๋ค. ์ด๋ ์์ ๋ด์ฉ์ ํ์ฌ ์ ํธํ๋ ๊ตฌํ์ผ๋ก ์ด๋๋๋ค.
FWIW, Adobe Photoshop ๋ฐ Illustrator๋ ์๋ชป๋ ๊ฐ์ ์ ๋ ฅํ๋ ค๊ณ ํ๋ฉด ์ด์ ๊ฐ์ผ๋ก ๋๋์๊ฐ๋๋ค. ์ฌ๊ธฐ์๋ ๊ณ์ฐ ๋์์ด ์์ง๋ง ์ธก์ ๋จ์ ์ ๋ฏธ์ฌ๋ ํ ์คํธ์ ์ผ๋ถ์ด๋ฉฐ ๊ทธ ์์ฒด๋ก ์ ํจ์ฑ ๊ฒ์ฌ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค. :)
๋ด ์์ ๊ณผ ์ถฉ๋ํ๋ ์์ด๋์ด๋ฅผ ๋์ง๊ณ ์ถ์์ต๋๋ค. ์ด์ ์ ๋ง์ ๊ฒฝํ์์ ์ฆ๊ฐ/๊ฐ์ ๊ธฐ๋ฅ์ด ์๋ ์ ๋ ฌ ๋ฒํธ ์์๊ฐ ์์๋ ๊ฒ์ ๊ธฐ์ตํ ์ ์์ต๋๋ค. ๊ทธ ๋ฐ๋. _ValuesWrap_ ์์ฑ๊ณผ ๊ฐ์ ๊ฒ์ด ์ฌ๊ธฐ์์ ์๋ฏธ๊ฐ ์๋์ง ํ์ธํ๊ณ ์ถ์์ต๋๋ค.
์ด๊ฒ์ ๋ถ๋ช ํ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฏธ๊ฐ ์๋ ๊ฒ์ ์๋์ง๋ง ์ ํ๋ ์ซ์ ๋ฒ์์ ๊ฒฝ์ฐ ๊ณผ๊ฑฐ์๋ Age ๋๋ DateOfBirth ํญ๋ชฉ ๋๋ ๊ธฐํ ์์ ๋ฒ์์ ๊ฒฝ์ฐ์ ๊ฐ์ ๊ฒฝ์ฐ์ ์ซ์๊ฐ ์ค ๋ฐ๊ฟ๋๋ ๊ฒ์ผ๋ก ๊ฐ์ ํ๋ ๊ฒ์ด ์ง๊ด์ ์ด์์ต๋๋ค. ๋ฐ๋ฉด์ ์ด ๊ฒฝ์ฐ ๊ฐ๊ด์ ์ ํ ์์๊ฐ ์ฌ์ฉ๋๊ณ ์ผ๋ฐ์ ์ผ๋ก ์ค์งํ๋ ๋์ ๊ฐ์ ๋ํํ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์ํฉ์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ ๋น์ฑ์ด๋ ํ์์ฑ์ด ์๋์ง ํ์ธํ๊ณ ์ถ์์ต๋๋ค. ๋ฌผ๋ก ์ถ๊ฐ ์์ ์ผ๋ก onValueChanged ์ด๋ฒคํธ๋ฅผ ํตํด ๊ฐ๋ฐ์ ์ธก์์ ๊ตฌํํ ์๋ ์์ต๋๋ค.
cc @SavoySchuler
๋ฉ์ง ์์ด๋์ด, @KevinTXY. ์ฌ๊ธฐ์ ์๋ ๊ฐ๋ฐ์ ์ค ๋๊ตฐ๊ฐ๊ฐ ๊ทธ๋ฐ ๊ฒ์ ํ์๋ก ํ๋ ๊ฒฝ์ฐ ์ถ๊ฐํ ์ ์์ต๋๋ค!
ValueWrap ์์ฑ๊ณผ ๊ฐ์ ๊ฒ์ด ์ฌ๊ธฐ์์ ์๋ฏธ๊ฐ ์๋์ง ํ์ธํ๊ณ ์ถ์์ต๋๋ค.
์, ๊ฐ๋ ์์ฑ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ 359 โ 0, ๊ธฐ๋ณธ์ ์ผ๋ก mod 360์ผ๋ก ๊ฐ๊ณ ์ถ์ต๋๋ค. ์ฌ๋ฏธ์๋ ์ ์ MaxValue๊ฐ ํฌ๊ด์ ์ผ ์๋ง ์๊ธฐ ๋๋ฌธ์ ์ปจํธ๋กค(Qt์ ์์)์ ํ์ ํด๋์ค๋ก ๋ถ๋ฅํด์ผ ํ๊ธฐ ๋๋ฌธ์ 359 ๋๋ 360, ๊ทธ๋ฌ๋ ๋๋ ์ ๋ง๋ก 359.99๋ฅผ ์ธ ์ ์๊ธฐ๋ฅผ ์ํ์ง๋ง 360์ ์ธ ์ ์์์ต๋๋ค(์ฆ, ๋๋ โค์ด ์๋๋ผ <๋ฅผ ์ํ์ต๋๋ค).
QSpinBox์๋ ํด๋น ๋ชฉ์ ์ ์ํ ๋ํ ์์ฑ์ด ์์ต๋๋ค. https://doc.qt.io/qt-5/qabstractspinbox.html#wrapping -prop
@SavoySchuler 16์ง์์ ๊ด๋ จํ์ฌ 16์ง์ ํธ์ง๊ธฐ๊ฐ ๊ทธ๊ฒ์ ์ํ ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง ์ ๋ง ํ์ ์ฌ์ฉ ์ฌ๋ก์ฒ๋ผ ๋ณด์ ๋๋ค. ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒ์ ์ง์ํ ํ์๋ ์์ต๋๋ค. ์ปจํธ๋กค์ด ํ์ ํด๋์คํํ๊ธฐ ์ฌ์ด์ง ํ์ธํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. Qt์์ ์ปจํธ๋กค์๋ ํ ์คํธ ์์ ๋ฌธ์์ด์ ์ฌ์ ์ํ ์ ์๋ ์ซ์ ๊ฐ(int ๋๋ double)์ผ๋ก ๋ณํํ๋ ๋ฉ์๋๊ฐ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด IsInvalidInputOverwrite๊ฐ ํ์ฑํ๋๊ณ StepSize=0.2, MaxValue=3.0์ด๊ณ ๊ฐ 2.9๊ฐ ์ฆ๊ฐํ๋ฉด 3.1์ด ์ ํจํ์ง ์์ ๊ฒ์ผ๋ก ๋ฑ๋ก๋๊ณ 2.9๋ก ๋ค์ ๋ฎ์ด์๋๋ค.
์ด ๊ฒฝ์ฐ MaxValue๋ก ๊ณ ์ ํ ์ ์์ต๋๋ค.
@Savoyschler @xyzzer @mrlacey ํธ์ํฐ์์ 20H1์ ์์ธก ํ ์คํธ ์ ๋ ฅ์ ์ ๊ณตํ๋ ๋ฌด์ธ๊ฐ๊ฐ ์๋ค๋ ๊ฒ์ ๋ณด์์ต๋๋ค.
์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์์ฑ ๊ธฐ๋ฅ์ ๋ฐฉํดํ ์ ์์ผ๋ฉฐ NumberBox ์ปจํธ๋กค์์ ์ต์ ํด์ผ ํ ์๋ ์์ต๋๋ค. Win32 ๋ฐ XAML ์ปจํธ๋กค์ ์ค๋ ๊ฒ ๊ฐ์ต๋๋ค ...
https://twitter.com/thebookisclosed/status/1137012461616488448?s=20
16์ง์ ๋๋ 2์ง์๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์ ํ ๋ฒํธ ๋ฐ ์ฐํธ ๋ฒํธ์ ๊ฐ์ "์ซ์์ฒ๋ผ ๋ณด์ด๋ ๋ฌธ์์ด"์ ์ฒ๋ฆฌํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ์ ๋ฌธํ๋ ์๋๋ฆฌ์ค๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค. (๊ทธ๋ฆฌ๊ณ ์์ ์ ๋ณต์ก์ฑ์ ๊ฐ์ ธ์ด)
๋ฐ๋ผ์ NumberBox ์ปจํธ๋กค์ ๋ฒ์๋ฅผ ๋ฒ์ด๋์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ณ์ฐ ๊ธฐ๋ฅ์ ๋ํด ๋งํ์๋ฉด, ๋์น ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ์ฌ์ฉ์์๊ฒ ์ผ๊ธฐ/๋๊ธฐ ์ ํ๊ถ์ ์ ๊ณตํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋์ ์๋ง๋ ๋ค์๊ณผ ๊ฐ์ ์์ฑ์ ์ถ๊ฐํ ๊ฒ์ ๋๋ค.
public bool ShowPreviewResult { get; set; }
๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ํ์ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๐ค ์ฌ์ฉ์๊ฐ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ์์์ ๋ณ๊ฒฝํ๋ ๊ฒ์ฒ๋ผ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์๋ฉด ๋ฐ๋ก ์ ๋ ฅํฉ๋๋ค.
๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ํ์ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๐ค ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ ์ํ๋ ๊ฒ์ ์๋ค๋ฉด ๋ฐ๋ก ์ ๋ ฅํฉ๋๋ค.
์ปจํธ๋กค์ ๊ธฐ๋ฅ ์ค ํ๋๋ 128๋ก ํด์๋๋ 32 * 4 ์ ๊ฐ์ด ๊ณ์ฐ์ ์ ๋ ฅํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ธฐ๋ฅ์ ์ปจํธ๋กค์ด ํฌ์ปค์ค๋ฅผ ์๊ฑฐ๋ Enter ํค๋ฅผ ๋๋ ์ ๋ ๊ฒฐ๊ณผ๊ฐ ๋ฌด์์ธ์ง ๋ณด์ฌ์ค๋๋ค.
@adrientetar ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ ํ์ฌ ์ ์ ์ ์ธ ๊ธฐ๋ฅ์ ๋๋ค. ์ปจํธ๋กค์ ์ ํจ์ฑ ๊ฒ์ฌ๊ฐ ์์๋๊ธฐ ์ ์ ๊ฐ์ด ๋ถ๋ถ์ ์ผ๋ก ์ฌ์ฉ์ ์งํฅ ์ ํจ์ฑ ๊ฒ์ฌ์ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์: ๊ธฐ๋ ํ์ธ("๋ํ๊ธฐ ๋์ ์๊ฐ์ ์ณค๋์?"). ์ฌ๊ธฐ์ ์ด์ ๋ฐ ํฌ์ ์์ต์ด ์์ง ๋ช ํํ์ง ์์ต๋๋ค.
๋ค์ ํ ๋ฒ ํผ๋๋ฐฑ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ฌ๋ฌ๋ถ! ํ์ฌ๋ก์๋ 2์ง ๋๋ 16์ง ์ง์์ ๋ํ ๊ธด๊ธํ ํ์๋ ๊ด์ฌ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. ๋ํ ํ์์ ๋ฐ๋ผ ํ์ ๋ถ๋ฅ๋๊ฑฐ๋ ์๋ก์ด ์ปจํธ๋กค๋ก ์ ์๋๊ฑฐ๋ V2์ ๋ํด ์ ์๋ ์ ์์ต๋๋ค.
@SavoySchuler ๋ "16์ง์ ๋๋ ์ด์ง์์ ๋ํ ์ง์์ด ํ์ํ ๊ฒ์ ์ ๋นํํ๋ ์ค์ ์ฑ ์๋๋ฆฌ์ค๊ฐ ์๋ ์ฌ๋์ด ์์ต๋๊น?"์ ๊ด๋ จํ์ฌ WinUI์ ์์ฒด ColorPicker ์ปจํธ๋กค์ ์๋ก ๋ค ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ 16์ง์ ์ ๋ ฅ ์์๊ฐ ํฌํจ๋ฉ๋๋ค. ๋ํ ์ฌ๋ฌ ๋ค๋ฅธ ์ซ์ ์ ๋ ฅ TextBox๋ฅผ ํฌํจํฉ๋๋ค. ์ ์ปจํธ๋กค์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ โโNumberBox ์ปจํธ๋กค์ ์ฌ์ฉํ๋๋ก ColorPicker๋ฅผ ์ ๋ฐ์ดํธํ ๊ฐ๋ฅ์ฑ์ ์กฐ์ฌํด ๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค. NumberBox๊ฐ ColorPicker์ ํ์ฌ ๊ตฌํ์ ๋จ์ํํ ์ ์๋ค๋ฉด ๊ทธ๊ฒ์ด ์น๋ฆฌ๊ฐ ๋ ๊ฒ์ ๋๋ค.
ํ ์คํธ ์์์ ๋ ์์ ํ ๋๋ฆฌ ์คํ์ผ์ด @chigy ๋ฐ WinUI ๋์์ธ ํ์ ์์ฌ ๊ฒฐ์ ์ ํต๊ณผํ์ง ๋ชปํ ๊ฒฝ์ฐ - ํ ์คํธ ์์ ๋์์ธ์ ๋ํ ํ์ฌ ์ ์๊ณผ ์ผ์นํ๋ ๋์์ธ ๋ชฉ์ ์ ์ค๋นํด์ผ ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
@kmahone - ๋์ํฉ๋๋ค. ์ค๋ ์์นจ ์ ์๊ธฐ์์ ์ธ๊ธํ๋ฏ์ด TextBox + ๋ก์ปฌ ์ ํจ์ฑ ๊ฒ์ฌ ๋ ผ๋ฆฌ์ ์ธ์คํด์ค๋ฅผ NumberBox๋ก ๊ต์ฒดํ์ฌ ColorPicker์์ ๋ง์ ์ฝ๋๋ฅผ ์ ๊ฑฐํ ์ ์๋ค๋ ๊ฒ์ ๊ทธ ์์ฒด๋ก ์น๋ฆฌ๊ฐ ๋ ์ ์์ต๋๋ค.
@mdtauk - ๋น์ ์ ๋ชฉ์ ์ด ๋ฏฟ์ ์ ์์ ์ ๋๋ก
@SavoySchuler Windows ๋์์ธ ํ์ด Fabric ์น ํ์ ํธ์ ์์ 2epx ๋๊ป์ ํ ๋๋ฆฌ์์ 1epx ํ ๋๋ฆฌ๋ก ์ด๋ํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๋ฉด NumberBox์ ๊ฐ์ฅ ์ ์๋ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ์ค์ฉ์ ์ด๋ผ๋ฉด Windows ๋์์ธ ํ์ด ํํค์น ์ ์์ต๋๋ค. ๊ทธ๋ค์ ๋ฐ ๋ค๊ฟ์น๋ฅผ ๋ฃ๊ณ ๋ ๋๊บผ์ด ํ ๋๋ฆฌ๋ฅผ ์ ์งํ์ญ์์ค.
๋ฌผ๋ก ์ด์ฃ , @mdtauk! ์กฐ๋ง๊ฐ @KevinTXY์ ๋ํ ๊ธฐ๋ฅ ์๊ตฌ ์ฌํญ์ @chigy (#524์์ ๋๋ผ์ด ์ผ์ ํ๋๋ผ ๋ฐ๋นด๋)์์ ๋์์ธ ์ปจ๋ฒ์ ์ค ๋ํ๋ก
๋ชจ๋ ํ ๋ก ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ด๋ฒ ์ฌ๋ฆ์ ์ธํด์ผ๋ก ์ด ๊ธฐ๋ฅ์ ์์ ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค!
๋๊ตฐ๊ฐ์ ๊ด๋ จ์ด ์๋ ๊ฒฝ์ฐ ๋ค์ ์ ์ฅ์์์ ์ปจํธ๋กค์ C# ํ๋กํ ํ์
์ ์์ํ์ต๋๋ค.
https://github.com/KevinTXY/NumberBox
์ด๊ฒ์ ๋ณธ์ง์ ์ผ๋ก ์ฒ์์ผ๋ก C#/UWP๋ฅผ ๋ฐฐ์ฐ๋ ๊ฒ์ด๋ฏ๋ก ์ฒ์ฒํ ๋ฐ๋ผ๊ฐ ๊ฒ์ด๊ณ ๋๊ตฐ๊ฐ ๊ทธ๊ฒ์ ๋ณด๋ฉด ๋ ์ํ ์ ์๋ ๊ฒ์ ๋ํ ํผ๋๋ฐฑ์ ๋ฐ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค!
๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ด ๋๋ต์ ์ผ๋ก ๊ตฌํ๋ฉ๋๋ค.
ํ์ฌ ์คํผ๋ ๋ฒํผ ๋ฐ ํ ์คํธ ์ฑ ํญ๋ชฉ ๋ฐ ์ต์/์ต๋ ์ ํจ์ฑ ๊ฒ์ฌ ์์ ์ ํ๊ณ ์์ต๋๋ค.
๊ฑด๋ฐฐ!
๋๋ ์ค๋(๋ชฉ์์ผ) WinUI ํ๊ณผ ํจ๊ป ๊ฒ์ฆํ ์ฌ์์ ๋ช ๊ฐ์ง ์ ๋ฐ์ดํธ, ์ ์ ๋ฐ ํผ๋๋ฐฑ์ ํตํฉํ์ต๋๋ค. ๊ทธ๋ ๊ฒ ํจ์ผ๋ก์จ V1์ ๋ํ API ๋ฐ ํ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ด๋ ์ ๋ ๋ง๋ฌด๋ฆฌํ๊ณ ์ถ์ต๋๋ค.
์ด์ ์ ๋ ฅ ๋ฐ ์ ๊ทผ์ฑ, ๋ฐ์ดํฐ ๋ฐ ์ธํ ๋ฆฌ์ ์ค, ์๊ฐ์ ๊ตฌ์ฑ ์์๋ก ์ด๋ํ ๊ฒ์ ๋๋ค.
๋ง์ง๋ง ๋จ๊ณ๋ ๋ฌธ์๋ฅผ ์ ๋ฆฌํ๊ณ ์ง์นจ์ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋๋ค.
Microsoft์ ํผ์คํธ ํํฐ ์ฑ/์ ธ UI๊ฐ WPF ๋๋ Win32์์ ์ํํด์ผ ํ๋ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ผ๋ฉด ์ฐ๊ฒฐ๋์ง ์๊ณ ์ฐ์์ ์ธ ์ต์ ์ด ๋งค์ฐ ํ์ ์์ฅ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
ํฌํจํ๊ณ ์ถ๋ค๋ฉด ์ต์ ๋ณด๋ค๋ ์ปจํธ๋กค์ ์ ์ฉํ ์ ์๋ ํฌํจ๋ ์คํ์ผ์ด ๋์์ผ๋ฉด ํฉ๋๋ค. ๋ค์ ํ ํ๋ฆฟํ๋ NumberBox ์ปจํธ๋กค์ ์ ํ ํ๋ฆฟ์์ ํด๋น ์์ฑ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊น์?
์ด ๋ชจ๋๊ฐ ํฌํจ๋์ด์ผ ํ๋ค๋ ํฉ์๊ฐ ์๋ ๊ฒฝ์ฐ SpinButtonPlacementMode ์ ์ผ๋ถ๋ก ์ด๊ฑฐํ ๊ฐ์ด ๋๋๋ก ์ ์ํ ์ ์์ต๋๋ค. ์ด ์ต์ ์ ์ด๋ฆ์ด ๋ฌด์์ธ์ง ํ์คํ์ง ์์ต๋๋ค. _Straddled_๋ ์๋ง๋ ์ถฉ๋ถํ ์ ๋ฌธ์ ์ด์ง ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ _Bookended_๊ฐ ๋ ๋์์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
Edge์ ์ต์ Canary ๋น๋๋ฅผ ๋ณด๊ณ ์์๋๋ฐ NumberBox ์ปจํธ๋กค์ ๊ฐ์ฅ ๊ฐ๊น์ด <input type="number"/>
์ ๋์์ธ์ ๋ณด์์ต๋๋ค.
์ด ์ด๋ฏธ์ง๋ฅผ ๊ณต์ ํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
@mdtauk - ๋์, SpinButtonPlacementMode๋ ๋์ฒด SpinButton ๋ฐฐ์น ์ต์ ์ ์ถ๊ฐํ๊ธฐ์ ์ ํฉํ ์ฅ์์ ๋๋ค.
์ด๋ฆ ์ฃผ์ ์ ๋ํด @Felix-Dev๋ SpinButton์ด ๊ฐ์ฅ ์ง๊ด์ ์ด๊ฑฐ๋ ์ ์๋ ค์ง ์ด๋ฆ์ด ์๋ ์ ์๋ค๋ ์ฌ์์ ์ฌ๋ฐ๋ฅด๊ฒ ๋ํ๋์ต๋๋ค. SpinBox ๋ฐ UpDownButtons๋ Windows ์ํ๊ณ์์ ์ฐ์ ํฉ๋๋ค. ๊ณง ๋ ์์ธํ ์ดํด๋ณด๊ฒ ์ง๋ง ์ด๋ฌํ ์ต์ ์ ๋ฐ๋ํ๋ ์ฌ๋์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์.
@mdtauk - ๊ณต์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๋๋ Canary๋ ์คํ ์ค์ด๋ฏ๋ก ์ฐ๋ฆฌ๊ฐ ๋ฐฐ์ธ ์ ์๋ ๊ฒ์ด ์๋์ง ๋๋ ๊ฐ๋ฐ์ ์กฐ์ ํ๋ ๊ฒ์ ์ ์ํ ์ฌ์ง๊ฐ ์๋์ง ์ดํด๋ณด๊ณ ํ์ธํ๊ฒ ์ต๋๋ค!
@SavoySchuler Fluent Controls ํ๋๊ทธ ํ์ฑํ(์คํ์ ์ปจํธ๋กค ํฌํจ)๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
WinUI ๊ตฌํ์ Fabric Web๊ณผ Edge๊ฐ ์ดํด๋ณด์์ผ ํ๋ ๋ณด๋ค ์ ์คํ ๋์์ธ์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ์ ๋ ฌ์ ์ข์ ์ผ์ ๋๋ค.
w3schools ์ ๋ ฅ ์ ํ ๋ฒํธ
๋ํ ํด๋น ์ฌ๋ผ์ด๋๋ WinUI๊ฐ ๊ณํํ๋ ๊ฒ๊ณผ ๋น์ทํ์ง๋ง ์์ ํ ๊ฐ์ง๋ ์์ต๋๋ค(์ฑ์์ง ์ ์ธ๊ณผ ๋น๊ตํ์ฌ ์ค๊ณฝ์ ์ด ์๋ ์ ์ธ)
ํ์งํ ๊ธฐ๋ฅ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ฏธ๊ตญ์์๋ ์์์ ๊ตฌ๋ถ ๊ธฐํธ๋ก ์ ์ด ์ฌ์ฉ๋ฉ๋๋ค. ๋ด๊ฐ ์ฌ๋ ๋ค๋๋๋์์๋ ์ผํ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฏธ๊ตญ์์๋ ๊ทธ๋ฃนํ ๊ตฌ๋ถ ๊ธฐํธ๊ฐ ์ผํ์ด์ง๋ง ๋ค๋๋๋์์๋ ์ ์ ๋๋ค.
์์:
Framework ์์์ Language ์์ฑ์ ์ฌ์ฉํ์ฌ Digit ๋ฐ Grouping ๊ตฌ๋ถ ๊ธฐํธ๋ฅผ ์ง์ ํด์ผ ํฉ๋๊น?
<StackPanel Spacing="12" Padding="12" Width="200">
<NumberBox Header="Dollar (US)"
Value="1234.56"
FractionDigits="2"
Language="en-US" />
<NumberBox Header="Euro (Netherlands)"
Value="2345.67"
FractionDigits="2"
Language="nl-NL"/>
</StackPanel>
Edge์ ์ต์ Canary ๋น๋๋ฅผ ๋ณด๊ณ ์์๋๋ฐ NumberBox ์ปจํธ๋กค์ ๊ฐ์ฅ ๊ฐ๊น์ด
<input type="number"/>
์ ๋์์ธ์ ๋ณด์์ต๋๋ค.
์ด ์ด๋ฏธ์ง๋ฅผ ๊ณต์ ํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
@mdtauk , @SavoySchuler ,
์ด ์ปจํธ๋กค์ด ์ด๋์์ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. Edge ํ์ ๋ด ์ฐ๋ฝ์ฒ์ ๋ฐ๋ฅด๋ฉด ๋ค์์ ๊ทธ๋ค์ด ์ฌ์ฉํ ์ปจํธ๋กค์
๋๋ค.
์ฌ๋ผ์ด๋: https://explore.fastdna.net/components/slider/
์ซ์ ์์: https://explore.fastdna.net/components/number-field/
๊ทธ๋ค์ด ๋น์ฃผ์ผ์ ์ ๋ฐ์ดํธํ ๊ฒ์ธ์ง ํ์คํ์ง ์๊ณ ์ต์ข ์ถ๋ ฅ์ด ์ ํํ ์ด์ ๊ฐ์ง ์์ ์๋ ์์ต๋๋ค(๊ทธ๋ ๋ค๊ณ ์๊ฐํ์ง๋ง ์ ์ถ์ธก์ ๋๋ค).
@chigy ๊ทธ ์ด๋ฏธ์ง๋ Edge์ ํ์ฌ Canary ๋น๋์์ ๊ฐ์ ธ์จ ๊ฒ์ด์ง๋ง ์ธ๊ธํ๋ฏ์ด WIP์ด๋ฉฐ ์ค์ ํ๋ ์ ํ์ ํ๋๊ทธ์ ๋๋ค.
์ด์ ํธ์์ ์ธ๊ธํ fastdna ํ๋ก์ ํธ๊ฐ ๋ฌด์์ ์ํ ๊ฒ์ธ์ง ์ค๋ช ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๐
Framework ์์์ Language ์์ฑ์ ์ฌ์ฉํ์ฌ Digit ๋ฐ Grouping ๊ตฌ๋ถ ๊ธฐํธ๋ฅผ ์ง์ ํด์ผ ํฉ๋๊น?
์ด๋ฌํ ์ค์ ์ ์ผ๋ฐ์ ์ผ๋ก "์์ญ"์์ ๊ฐ์ ธ ์ค๋ฏ ๋ก
DecimalFormatter API์์ ๊ตฌ๋ถ ๋ฌธ์๋ฅผ ์ฌ์ฉ์ ์ ์ํ๋ ๋ฐฉ๋ฒ์ด ํ์๋์ง ์์ผ๋ฏ๋ก ์ธ์ด โโ์ค์ ์์ ๊ฐ์ ธ์์ผ ํฉ๋๋ค. ๐
@jevansaks , ํต์ฐฐ๋ ฅ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! @sonnemaf ๊ฐ ๋ต์ฅ์ ๋ณผ ์ ์๋๋ก ํ๊ทธ๋ฅผ ์ง์
@jevansaks xaml ์์ ๋ฅผ NumberBox์ DecimalFormatter์ ์ด๋ป๊ฒ ์์ฑํ ์ ์์ต๋๊น? ์ฝ๋ ์จ๊น์ด ์๋ XAML์์ ์ ์ํ๊ณ ์ถ์ต๋๋ค. DecimalSymbol ๋ฐ GroupingSymbol ์์ฑ์ ๊ฐ๋ ๊ฒ๋ ์ ์๊ฒ ํจ๊ณผ์ ์ ๋๋ค. ํ์ง๋ง ์ด๊ฒ์ ๋๋ฌด ์ฌ์ธ ์ ์์ต๋๋ค.
<StackPanel Spacing="12" Padding="12" Width="200">
<NumberBox Header="Dollar (US)"
Value="1234.56"
FractionDigits="2"
DecimalSymbol="."
GroupingSymbol="," />
<NumberBox Header="Euro (Netherlands)"
Value="2345.67"
FractionDigits="2"
DecimalSymbol=","
GroupingSymbol="." />
</StackPanel>
* Does anyone have any real app scenarios that justify needing support for hexadecimal or binary?
์นจ์ ํด์ ์ฃ์กํฉ๋๋ค. ๋ฐฉ๊ธ ์ด ์ฃผ์ ๋ฅผ ๋ฐ๊ฒฌํ์ง๋ง YES YES YES์ ๋๋ค. ๋ ๋ค ์ซ์ ์ปจํธ๋กค์์ ์์ฃผ ๋๋ฝ๋๋ฉฐ ์ ์ github์ ๋ค๋ฅธ ๋ง์ ๊ฐ๋ฐ์๋ ์ด์ ๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋น๋ํด์ผ ํฉ๋๋ค. ํนํ ๊ณ์ฐ๊ธฐ ์์ ์์๋ ์ซ์๋ฅผ 16์ง์๋ก ํ์ํํ ๋ฟ๋ง ์๋๋ผ ์ ๋ ฅ์ ์๋ฒฝํ๊ฒ ์ง์ํด์ผ ํฉ๋๋ค.
ํ์ฌ๋ก์๋ 16์ง์์ ์ ๋์ฌ๋ฅผ ์ฌ์ฉ์ ์ ์ํ ์ ์๋๋ก ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ค ์์ ์์๋ ์ ๋์ฌ๊ฐ ์ ํ ์๋ ๊ฒ์ด ๋ ์ข๊ณ ๋ค๋ฅธ ์์ ์์๋ ํญ์ 0x
๊ฐ ์๋๋๋ค.
NumberBox์ DecimalFormatter์ ๋ํ xaml ์์ ๋ฅผ ์์ฑํ ์ ์์ต๋๊น? ์ฝ๋ ์จ๊น์ด ์๋ XAML์์ ์ ์ํ๊ณ ์ถ์ต๋๋ค. DecimalSymbol ๋ฐ GroupingSymbol ์์ฑ์ ๊ฐ๋ ๊ฒ๋ ์ ์๊ฒ ํจ๊ณผ์ ์ ๋๋ค. ํ์ง๋ง ์ด๊ฒ์ ๋๋ฌด ์ฌ์ธ ์ ์์ต๋๋ค.
@sonnemaf WinRT์์ ์์ ํด์ผ ํ๋ ๋ชจ๋ ๊ฒ์ DecimalFormatter์ด๋ฉฐ ๋ถํํ๋ ์ด๋ฌํ ์ค์ ์ ์ฌ์ฉ์ ์ง์ ํ ์ ์์ต๋๋ค. ์์ ๊ธฐํธ ๋๋ ๊ทธ๋ฃนํ ๊ธฐํธ๋ฅผ ์ฌ์ฉ์ ์ ์ํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ OS์ ์ง์ญ ์ ์ดํ์์ ์ฌ์ฉ์ ์ค์ ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค(๋ด๊ฐ ๋งํ ์ ์๋ ํ).
์ด๋ฌํ ์ค์ ์ ๋ํด ์ฌ์ฉ์ ์ง์ญ์ ์กด์คํ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅธ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์ด๋ฅผ ์ฌ์ ์ํด์ผ ํ๋ ์๋๋ฆฌ์ค๊ฐ ์์ต๋๊น?
@sonnemaf
16์ง์ ๋๋ 2์ง์์ ๋ํ ์ง์์ด ํ์ํ ๊ฒ์ ์ ๋นํํ๋ ์ค์ ์ฑ ์๋๋ฆฌ์ค๊ฐ ์๋ ์ฌ๋์ด ์์ต๋๊น?
์ด ์ ์ ์ธ์งํ๊ณ ๋ต๋ณ์ด ์กฐ๊ธ ๋ฆ์ด ์ฃ์กํฉ๋๋ค. 16์ง๋ฒ/2์ง๋ฒ ์ง์์ด ๋งค์ฐ ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ๋ .NET IoT ํ๋ก์ ํธ์ ๋ง์ด ๊ด์ฌํ๊ณ ์์ผ๋ฉฐ ๋ ์ง์คํฐ์ ์ฝ๊ณ ์ฐ๋ ๋นํธ/๋ฐ์ดํธ๋ฅผ ์กฐ์ํ๊ณ ์ฌ๋ฌผ์ ์ ์ดํ๊ธฐ ์ํด ๊ณ ์ ํ๋ ๋นํธ/๋ฐ์ดํธ๋ฅผ ์กฐ์ํ ๋ ์ฃผ๋ก 16์ง/2์ง ์ธ๊ณ์์ ์์ ํฉ๋๋ค.
16์ง์/2์ง์๋ฅผ ์ง์ํ๋ฉด ๋งค์ฐ ๊ฐ์ฌํ ๊ฒ์ ๋๋ค. ๐
16์ง์๋ ๋ฐ์ด๋๋ฆฌ๊ฐ ํ์ํ์ง ์์ต๋๋ค. '์์ผ๋ฉด ์ข์ ๊ฒ', ํนํ ๋ฐ์ด๋๋ฆฌ์ ๋๋ค.
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ! ์ฐ๋ฆฌ๋ NumberBox ์ฌ์์ ๋ง์กฑํ๊ณ ์์ผ๋ฉฐ, ์ปจํธ๋กค์ ๋ํด ์ ๊ทน์ ์ผ๋ก ์์ ํ๊ณ ์๋ค๋ ์ ์ ๊ฐ์กฐํ๊ณ
๋ช ๊ฐ์ง ์ฐธ๊ณ ์ฌํญ:
@KevinTXY TextBox๊ฐ ์๋ Slider ๊ธฐ๋ฐ์์ ํ์๋๋ ์ ์์ด ํ๋ ์์ต๋๋ค. ์ด๊ฒ์ด ์ ํ๋ ๊ฒ์ ๋๊น?
์ด๊ฒ๋ค์ ๋ด๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํ๋ TextBox์ ์ผ๋ถ์ ๋๋ค. ๊ธด ํ ์คํธ ๋ฌธ์์ด์ ๋ ์ ํฉํ "์ผ๋ฐ ํ ์คํธ" ๋ฒํผ์ด ํ์คํ์ง ์์ต๋๋ค.
๋ฐธ๋ฅ๋ฏธ๋ฆฌ๋ณด๊ธฐ V2 ๊ธฐ๋ฅ์ธ์ค ์์๋๋ฐ ๋ฐ๋์๋์? ์ฌ๋ผ์ด๋ ์ปจํธ๋กค์๋ ์์ง์๊ฐ๋ฝ์ด ๋ฏธ๋๋ฌ์ง ๋ ๊ฐ์ ํ์ํ๋ ๋๊ตฌ ์ค๋ช ์ด ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ ์ฒ๋ฆฌํ๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ ์ํ์ผ๋ฉฐ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฉ์์ง๋ฅผ ์ฌ์ฉํ์ฌ ์ฒ๋ฆฌํ๊ฑฐ๋ ์ธ๋ผ์ธ์ผ๋ก ํ์ํ์ต๋๋ค.
์ธ๋ผ์ธ์ Windows Insider๊ฐ ๋๊ตฌ ์ค๋ช ์ผ๋ก ํ์๋๊ฑฐ๋ ํ ์คํธ ํ๋ ๋ด์ ํ์๋๋ ์์ธก ํ ์คํธ ์์ฑ์ ์คํ์ ์ผ๋ก ๊ตฌ์ถํ๋ค๋ ์ฌ์ค์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๋ค ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฐฉ๋ฒ์ ์ ํํ๋ ์ด ๋ฐฉ๋ฒ๊ณผ ์ถฉ๋ํ๊ฑฐ๋ ์ด ์ปจํธ๋กค์ ๋ํด ํด๋น ์์ธก ๊ธฐ๋ฅ์ด ๊บผ์ ธ ์์ผ๋ฉด ์ ๋ฉ๋๋ค.
@KevinTXY TextBox๊ฐ ์๋ Slider ๊ธฐ๋ฐ์์ ํ์๋๋ ์ ์์ด ํ๋ ์์ต๋๋ค. ์ด๊ฒ์ด ์ ํ๋ ๊ฒ์ ๋๊น?
NumberBox๋ ํ์ฌ TextBox๋ฅผ ํ์ฅํ๋ ๋์ ํ๊ทธ์ TextBox๋ฅผ ํฌํจํ๋ ์์ฒด ์ปจํธ๋กค(Windows.UI.Xaml.Controls.Control ํ์ฅ)์ ๋๋ค. ์ฌ๋ผ์ด๋๋ ํฅ๋ฏธ๋กญ๊ฒ ๋ค๋ฆฌ์ง๋ง ๊ตฌํ์ด ์ฝ๊ฐ ํดํน๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ฌํ ์ปจํธ๋กค์๋ NumberBox์ ์ํ์ง ์๋ ์์ฑ๋ ๋ง์ด ์์ต๋๋ค. ์ ๋ PM์ ์๋์ง๋ง ์ด๊ฒ์ ๊ฐ๋ฐํ ๊ฒฝํ์ ๋น์ถ์ด ๋ณผ ๋ ์ด๊ฒ์ด ๊ฐ๋ฐ์ ๋จ์ํํ๊ณ ํฅํ ํ์ฅ์ฑ์ ์ํ ์ข์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ๋ค์ ๋ด๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํ๋ TextBox์ ์ผ๋ถ์ ๋๋ค. ๊ธด ํ ์คํธ ๋ฌธ์์ด์ ๋ ์ ํฉํ "์ผ๋ฐ ํ ์คํธ" ๋ฒํผ์ด ํ์คํ์ง ์์ต๋๋ค.
์ด๊ฒ์ ๊ต์ฅํฉ๋๋ค - ์ ํํ ๋ด๊ฐ ์ฐพ๋ ๊ฒ์ ๋๋ค! ์ด ๋ชจ๋ ๊ฒ์๋ ๊ฐ์น๊ฐ ์๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ๋ชจ๋ ์ง์ฐ๊ธฐ ๋ฒํผ์ ํ์ฌ TextBox์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ด๋ฏ๋ก ๊ฑฐ๊ธฐ์ ์์ต๋๋ค. ์์ง ๋นํ์ฑํํ ์๊ฐ์ ํ์ง ์์์ง๋ง ํฐ ํญ๋ชฉ์ด๋ ํฐ์น ์คํฌ๋ฆฐ ์ฌ์ฉ์์๊ฒ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ์ ์ด๋ ๋ด๊ฐ ์ธ๊ธํ ์ธ ๊ฐ์ง(Header, PlaceholderText, Text)๋ฅผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ก ๊ฐ์ ธ์ค๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค.
๊ฐ์น ๋ฏธ๋ฆฌ๋ณด๊ธฐ์ ๊ดํด์๋ ์๋ฌด๊ฒ๋ ํ์ ๋์ง ์์์ผ๋ฉฐ ์ฌ์์ ๊ณต๊ฐ ์ง๋ฌธ์ผ๋ก๋ง ์์ต๋๋ค. ๊ฐ์ฅ ์ฌ์ด ์์ ์๋ฃจ์ ์ ๊ฐ๋ฐ์๊ฐ ์ํ๋ ๋๋ก ํ์ํ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๊ฐ์ ๋ ธ์ถํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋ฒ์ ์ ๋ฒ์์ ์ฝ๊ฒ ํฌํจ๋ ์ ์์ง๋ง @SavoySchuler & Co.๊ฐ ํธ์ถํ๋๋ก ๋จ๊ฒจ ๋๊ฒ ์ต๋๋ค. ๋ด๊ฐ ์ํ ์์ง์ ์ฐ๊ตฌํ๋ ๋์ ์ต์ํ ๋ฉฐ์น ๋์์ ๊ณ์ฐ์ด ๋ด PR์ ํฌํจ๋์ง ์์ ๊ฒ์ด๋ฏ๋ก ๊ธด๊ธํ ์ธ๋ถ ์ฌํญ์ ์๋๋๋ค. ์ฐ๊ตฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ฌ๊ธฐ์ ํฅ๋ฏธ๋ก์ด ์์ด๋์ด๊ฐ ๋ง์ด ์์ต๋๋ค!
@KevinTXY ์ด์์ ์ผ๋ก๋ ๋ด์ฅ๋ ์ ์๋ ๊ธฐ๋ณธ ๊ณ์ฐ ์์ง์ ๋ง๋ค๊ณ ์ด ์ปจํธ๋กค๊ณผ ํจ๊ป ๋ ผ์๋ CalculatorPicker ์์ด๋์ด์ ํจ๊ป ํฅํ ์ฌ์ฉ์ ์ํด Calculator ํ๊ณผ ํ๋ ฅํ๋ ๊ฒ์ ๋๋ค. (ํ์ค ๊ณ์ฐ๊ธฐ๋ก ํ๋ผ์ด์์์ ํ์ํ๋ ๊ณ์ฐ๊ธฐ ๋ฒํผ์ด ์๋ ์ปจํธ๋กค)
์ฌ์ค, Calculator ๋ฉ์ธํ ์ด๋์์ ํ์ ์ ์ข์ ์์ด๋์ด์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. ๊ณ์ฐ๊ธฐ์์ ์ํ ๊ณ์ฐ์ ์ํํ๋ ์ฑ ์๋น์ค๋ฅผ ๋ ธ์ถํ ์ ์์ผ๋ฏ๋ก WinUI ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ก๋ํ ํ์๋ ์์ต๋๋ค. ์ฑ์ด ์ค์น๋์ด ์์ผ๋ฉด ์ฑ ์๋น์ค์ ์๋ฆฌ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด ์กฐ์ฉํ ์คํจํฉ๋๋ค.
Slider์์ ํ์์ ๊ดํด์ - ๋๋ ์ค์ ๋ก RangeBase ๋ผ๊ณ
์ ์, RangeBase, ๊ทธ๊ฒ ์ ๋ถ์์ต๋๋ค.
๊ณ์ฐ๊ธฐ๋ ์ต๊ทผ์ ํญ์ ๋งจ ์์ ์๋ CompactOverlay ๋ชจ๋๋ฅผ ์ง์ํ๋ ์์ ์ ์๋ฃํ์ต๋๋ค. ๋ฐ๋ผ์ CalendarFlyout๊ณผ ๋น์ทํ ํฌ๊ธฐ์ ํ๋ผ์ด์์์ ๋ ์์ ํคํจ๋๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ๋ ์ฝ๊ฒ ๋ฌ์ฑํ ์ ์์ต๋๋ค. (CalculatorBox ์ปจํธ๋กค์ด ํฌํจ๋๋๋ก ์น์ธ๋ ๊ฒฝ์ฐ.
์ฑ ์๋น์ค(WinUI ์ ๋ฐ์ดํธ๋ฅผ ์ฐ๊ฒฐํ๋ ๊ณ์ฐ๊ธฐ ์ ์ฅ์ ์ ๋ฐ์ดํธ์ ๋ฐ ์์กด์ )์ธ์ง ๋๋ WinUI์ ์ถ๊ฐ๋๊ณ ๊ณ์ฐ๊ธฐ์ ์์ง์์ ํ์๋ ์ ์๋ ์๋น์ค ๋ฐ์ด๋๋ฆฌ์ธ์ง ํ์คํ์ง ์์ต๋๋ค.
์ ๋ฐ์ดํธ: ์ด์ ์ฝ๋ PR ์ด ์กด์ฌํฉ๋๋ค ๐!
๋๋ ๊ฑฐ๊ธฐ์์ ๋ช ๊ฐ์ง ๋ฌธ์ ๋ฅผ ์ถ์ ํ๊ณ ์์ง๋ง ๋๋ถ๋ถ์ ๋์์ธ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
@xyzzer ์ @mdtauk ๊ฐ์ฌํฉ๋๋ค! RangeBase๋ฅผ ํ์ธํ์ผ๋ฉฐ TextBox๋ฅผ ์๋ธํด๋์ฑํ๋ ๊ฒ๋งํผ ๋ง์ ์ง์ ์ด๋ฐํ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ์ง๊ธ์ผ๋ก์๋ ์ปจํธ๋กค์ TextBox๋ฅผ ํฌํจํ๊ณ ํ์ํ ์์ฑ๊ณผ ์ ๊ทผ์ฑ ๊ธฐ๋ฅ๋ง ์ถ๊ฐํ๋ ๋ฐฉ์์ ๊ณ ์ํ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ์ฌ์ ํ โโ๊ฐ์น ์๋ ๊ณ ๋ ค ์ฌํญ์ด์๊ณ ํ์ฌ ์งํ ์ค์ธ ์ ๊ทผ์ฑ ๋ํ๋ฅผ ์๋ฆฌ๋ ๋ฐ ๋์์ด ๋์์ต๋๋ค.
@mdtauk , ์์ ๋ชฉ๋ก์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! @KevinTXY ๋ ๊ทํ๊ฐ ๋์ดํ API๋ฅผ ๊ณต๊ฐํ๊ธฐ ์์ํ์ผ๋ฉฐ ๋๋จธ์ง๋ ๊ณง ๊ฒํ ํ๊ฒ ์ต๋๋ค.
์ธ๊ธ๋ @KevinTXY ์ ๊ฐ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฐ ํ์ ๊ณ์ฐ๊ธฐ(์ฌ๊ธฐ์ v1 ๋ณด์ฅ ์์). ์ฐ๋ฆฌ๋ ์ ๋ ฌ ๋ฐ ํ์ฉ ๊ฐ๋ฅํ ์์ ์ ๋ํด ๊ณ์ฐ๊ธฐ์ ์ ๊ทน์ ์ผ๋ก ๋ํํ๊ณ ์์ต๋๋ค. ๋น์ ๋ค์ ๋ฉ์ง๋ฐ! ์ด ์ปจํธ๋กค์ ๋ํ ํ์ ์ ๊ณ์ ์ถ์งํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๊ทธ๊ฒ์ ๊ต์ฅ. @KevinTXY ๋ ์์ ์์ ์ ์ฝ๋ PR์ ๊ฒ์ํ์ต๋๋ค. ์ง์นจ ๋ฐ ๋ฌธ์ ์ด์ ์์ฑ์ผ๋ก ๋์ด๊ฐ๊ธฐ ์ง์ ์ ์ฌ์์ ๋๋จธ์ง ๋์จํ ๋ถ๋ถ์ ๋ชจ๋ ๋ฌถ์ ๊ฒ์ ๋๋ค.
์ฌ์์ด ์ ์๊ฒ์ ๋ฉ์ด์ก๋ค๋ ์๊ฒฌ์ด ๋๋ฌด ๋ง์์ ์ํฉ์ด ์ง์ ๋ ํ ์ดํด๋ณด๊ธฐ ์์ํ์ต๋๋ค. ๋จผ์ C# ๊ท์น์ ๋ฐ๋ฅด์ง ์๋ ์ด๋ฆ ์ง์ ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ์, ์ด๋ฌํ ์ปจํธ๋กค์ด C++๋ก ์์ฑ๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ฌ์ ํ ํ๋ซํผ์ ๋ค๋ฅธ ์ด๋ฆ ์ง์ ๊ณผ ์ผ์นํ์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
| ์ ํ | ํ์ฌ ์ด๋ฆ | ์ ์๋ ์ด๋ฆ |
|---------|----------------|-------------------|
| ๋ถ์ธ | ์๋ฝ๊ณ์ฐ | IsCalculationAccepted |
| ๋ถ์ธ | HyperDrag ํ์ฑํ | IsHyperDragEnabled |
| ๋ถ์ธ | ํ์ดํผ์คํฌ๋กค ๊ฐ๋ฅ | IsHyperScrollEnabled |
๋ํ StepFrequency๋ ๋ฌด์์ ๋๊น? ์ด๊ฒ์ ์ฌ์์ ์ ์๋์ด ์์ง ์์ผ๋ฉฐ "XAML Toolkit์ NumericUpDown"์ ๋ํ ๊ฒฝํ์ด ์์ต๋๋ค. ์ด๊ฒ์ด ์ํํ๋ ์์ ์ ๋ฐ๋ผ Frequency๋ผ๋ ๋จ์ด๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ์๋ฏธ๊ฐ ์์ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์๋ง๋ "๋จ๊ณ"์ผ ๊ฒ์ ๋๋ค. ์ฌ๋ผ์ด๋ ์ปจํธ๋กค์์ TickFrequency๋ ์ ์ฒด ์ต๋-์ต์ ๋ฒ์์ ๊ณ์์ ํฑ์ด ํ์๋๊ธฐ ๋๋ฌธ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ปจํธ๋กค์์๋ ์ด๊ฒ์ด ๋จ์ง ์ต์ ์ฆ๋ถ/๋จ๊ณ ํฌ๊ธฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ์๊ฐ ๋จ๊ณ ์ธ๋ถ์ ๊ฐ์ ์ ๋ ฅํ ์ ์์ต๋๊น?
์๋ฅผ ๋ค์ด MinValue = 0, MaxValue = 6, StepFrequency = 2์ ๋๋ค. ์์ชฝ ํ์ดํ ๊ฐ์ ์ฌ์ฉํ๋ฉด {2, 4, 6}์ด ์ถฉ๋ถํ ๊ณต์ ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ ํจํ ๊ฐ์ผ๋ก 0.5๋ฅผ ์ ๋ ฅํ ์ ์์ต๋๊น? ์๋๋ฉด RoundingMode์ ๋ฐ๋ผ 0 ๋๋ 2๋ก ๋ฐ์ฌ๋ฆผ๋ฉ๋๊น?
์๋ ๋ ์์ฑ์ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ปจํธ๋กค(Slider, RangeBase)์์์ ๊ฐ์ด ์ต์๊ฐ๊ณผ ์ต๋๊ฐ์ด์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. API๋ ์ผ๊ด์ฑ์ด ์์ด์ผ ํฉ๋๋ค.
์ด์ค ์ต์๊ฐ;
๋๋ธ MaxValue;
๋ด๊ฐ ์๋ ํ ๋ ผ์๋์ง ์์ ๋ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ์/์๋ ๋ฒํผ์ ์ค์ ๋ก RepeatButton์ผ๋ก ๋ง๋ค์ง ์ฌ๋ถ์ ๋๋ค(๊ทธ๋์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค). ๋ฐ๋ณต ๋ฒํผ์ธ ๊ฒฝ์ฐ Slider ์ปจํธ๋กค์ฒ๋ผ Delay/Interval ์์ฑ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. Slider.Interval Slider.Delay
IntegerDigits ๋ฐ FractionDigits๊ฐ ๋ํ๋ด๋ ๊ฒ์ ๋ํ ์ค๋ช ์ ์ถ๊ฐํ ์ ์์ต๋๊น? ๋ด ์๊ฐ์ ๊ทธ๋ค์ ์ซ์์ ๊ฐ ๋ถ๋ถ์ ๋ํ ์๋ฆฟ์๋ฅผ ์ ํํฉ๋๋ค. IntegerDigits = 2๋ ์ต๋๊ฐ์ด 99๊ฐ ๋ ์ ์์์ ์๋ฏธํฉ๋๋ค. FractionDigits = 3์ MaxValue๊ฐ 0.999๊ฐ ๋ ์ ์์์ ์๋ฏธํฉ๋๋ค. ๋ํ SignificantDigits๋ ์ด ๋ ์์ฑ์ ์ด๋ป๊ฒ ์ฌ์ ์ํฉ๋๊น?
์ด ์์ฑ์ด ํ์ํ ์ด์ ๋ ๋ฌด์์
๋๊น? ๋ก์ปฌ๋ผ์ด์ ์ด์
๊ทธ ์์ฒด์ธ๊ฐ์? "-0.0" ๋๋ "-0"์ ๋ณธ ์ ์ด ์์ต๋๋ค. ํญ์ "0"์
๋๋ค.
๋ถ์ธ IsZeroSigned;
UI ํ์งํ ๋ฐ ์ซ์ ํ์ ์ฌ์ ์๋ฅผ ์ง์ํ๋ ค๋ฉด ์ด ์ปจํธ๋กค์ด ํ์ํฉ๋๋ค. ๋ค๋ฅด๊ฒ ํ์๋์ด์ผ ํ๋ ํ์ง ๋ฐ ํด์ธ ๊ธ์ก์ด ํ์ํ ์ฌ๋ฌ ์ฉ๋(๊ธ์ต ์ฑ)๊ฐ ์์ต๋๋ค. ์คํ ์ด๋์์๋ ๋ณผ ์ ์์ต๋๋ค.
์ด์ค์์ ํ ์คํธ๋ก ๋ณํํ๋ ๊ฒ์ Slider.ThumbToolTipValueConverter์ ์ ์ ์ ๋ฐ๋ผ ValueConverter๋ฅผ ํตํด ์ฌ์ฉ์ ์ ์ํ ์ ์์ด์ผ ํฉ๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๊ฐ์ฅ ๋ณต์กํ ๋ถ๋ถ์ ์๋์ ์ค์ ์ฌ๋ก์ ๊ฐ์ด ๋ชจ๋ ์๊ตฌ์ ๋ง๊ฒ ์ฌ์ฉ์ ์ ์ํ ์ ์์ต๋๋ค.
์ซ์์ ๋์ ๋ํ ์์ ๊ตฌ๋ถ ๊ธฐํธ๊ฐ ๋ค๋ฅผ ์ ์๊ณ ์์์ ์ง์ ๋ ๋ค๋ฅผ ์ ์์ผ๋ฏ๋ก ValueConverter๊ฐ ์๋ NumericBox์ ๋ํ ๊ฐ์ฅ ์์ ํ ์ ๊ทผ ๋ฐฉ์์ ์ ์ ๋ชจ๋์์ ์๋ํ๋ ๊ฒ์ ๋๋ค. ๊ณ์ฐ๊ธฐ๋ ValueConverter๋ก ๊ตฌํํ ์ ์์ผ๋ฏ๋ก ์ด ์์ ์ผ๋ก ์ปจํธ๋กค์ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ฆด ํ์๊ฐ ์์ต๋๋ค.
@eugenegff ์ซ์๋ฅผ ๋ฌธ์์ด๋ก์ ๋ณํ์ ์ผ๋ฐํํ๋ ์ข์ ์์ด๋์ด๊ฐ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํ์งํ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ๊ฐ๋ฐ์๊ฐ ๋จ์ ์ถ๊ฐ์ ๊ฐ์ด ์ํ๋ ๋ชจ๋ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
๋ด๊ฐ ๋ณผ ์์๋ ์ ์ผํ ๋ณต์ก์ฑ์ ์ปจํธ๋กค๊ณผ ๊ด๋ จ๋ Culture/NumberFormatInfo๋ฅผ ์ ์งํ๋ ๊ฒ์ ๋๋ค. ์ฌ์ฉ์ ์ง์ IValueConverter๋ก ์ด๋ํ๋ XAML์ ๋ณํ๊ธฐ ๋งค๊ฐ ๋ณ์์ผ ์ ์์ง๋ง ์ปจํธ๋กค ์์ฒด์์ ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ ๊นจ๋ํ ๋ฐฉ๋ฒ์ด ์์ด์ผ ํฉ๋๋ค.
์ด ์์ฑ์ด ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋ก์ปฌ๋ผ์ด์ ์ด์ ๊ทธ ์์ฒด์ธ๊ฐ์? "-0.0" ๋๋ "-0"์ ๋ณธ ์ ์ด ์์ต๋๋ค. ํญ์ "0"์ ๋๋ค.
Windows์ DecimalFormatter ํด๋์ค ์์ฑ์ ๋๋ค. ์ด์ํด? ์๋ง. ์ฐ๋ฆฌ๊ฐ ์๋ตํ IsGrouped ๋ฐ ์ง์ญํ ์์ฑ๊ณผ ๊ฐ์ ์ผ๋ถ ์์ฑ์ด ์์ผ๋ฏ๋ก ์ด ์์ฑ๋ ํ์ํ์ง ์์ ์ ์์ต๋๋ค. ๋์์ ์ด๋ฏธ ๊ตฌํ๋์ด ์์ผ๋ฏ๋ก ์ ๊ฑฐํ๋ ๊ฒ์ 3์ค์ ์ฝ๋๋ฅผ ๋ถํ๋ฆฌ๋ ๊ฒ ์ธ์ ๋ค๋ฅธ ๋ชฉ์ ์ด ์์ต๋๋ค. ํฅ๋ฏธ๋กญ๊ฒ๋ ๋ถํธ ์๋ 0์ ๊ฐ๊ธฐ ์ํ ์ฉ๋์ IEEE ์ ์ ์กฐ๊ฑด์ด ์์ต๋๋ค.
UI ํ์งํ ๋ฐ ์ซ์ ํ์ ์ฌ์ ์๋ฅผ ์ง์ํ๋ ค๋ฉด ์ด ์ปจํธ๋กค์ด ํ์ํฉ๋๋ค. ๋ค๋ฅด๊ฒ ํ์๋์ด์ผ ํ๋ ํ์ง ๋ฐ ํด์ธ ๊ธ์ก์ด ํ์ํ ์ฌ๋ฌ ์ฉ๋(๊ธ์ต ์ฑ)๊ฐ ์์ต๋๋ค. ์คํ ์ด๋์์๋ ๋ณผ ์ ์์ต๋๋ค.
@SavoySchuler ์๋ง๋ DecimalFormatter ํด๋์ค์์ ์ธ์ด ์ค์ ์ง์์ ์ดํด๋ด์ผ ํ ๊น์? ๋๋ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ํ๋ํ๋์ง ์ ๋ชจ๋ฆ ๋๋ค.
์ข์, ๋๋ ์ฌ๊ธฐ์ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ๋ฅผ ์ดํดํ๊ณ ์๋ค๊ณ ์๊ฐํ๋ค. C++ ์ธ๊ณ์์๋ DecimalFormatter์ ์ก์ธ์คํ ์ ์์ง๋ง C# ์ธ๊ณ์์๋(WinUI๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ) ์ผ๋ฐ์ ์ผ๋ก IFormatProvider(์ง์ ๋ Culture์ NumberFormatInfo)๋ฅผ ์ฌ์ฉํฉ๋๋ค. NumberFormatInfo์๋ ์ด๋ฏธ ๋๋ถ๋ถ์ ์์ฑ์ด ์์ผ๋ฏ๋ก(๋์์ IsZeroSigned๊ฐ ๋๋ฝ๋จ) ๊ฐ๋ฐ์๊ฐ ํด๋น ๋๋ IFormatProvider๋ฅผ ์ง์ ํ ์ ์๋๋ก ํ์ฉํ๋ ๊ฒ์ผ๋ก ์๊ฐํ์ต๋๋ค. ์, ๋ฌธ์ ๊ฐ ์์ต๋๋ค. C++๋ .net ์ธ๊ณ์ IFormatProvider๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด ์ปจํธ๋กค์ ๋ ๊ฐ์ง ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์๋ค๋ ์ ์ ๊ณ ๋ คํ ๋ C# ๋ฐ C++์์ ํ์งํ๋ฅผ ์ด๋ป๊ฒ ์๋ฒฝํ๊ฒ ์ง์ํ ๊น์? ๊ธ์์, ๋ง์ดํฌ๋ก์ํํธ๊ฐ ์๋ฆฌํ ์๋ฃจ์ ์ ๊ฐ์ง๊ณ ์์ง ์๋ค๋ฉด ์ ๋ ๋ ๊ฐ์ง ๊ฐ๋ฅ์ฑ๋ง ์๊ฐํ ์ ์์ต๋๋ค.
์ด ์ปจํธ๋กค์์ ํ์งํ๊ฐ ์ด๋ป๊ฒ ํ์ฑ๋๊ณ ์๋์ง ์ฝ๊ฐ ๊ฑฑ์ ๋ฉ๋๋ค. ์ ๋ ์ฒ์๋ถํฐ ํ์งํ๋ฅผ ์ ๊ธฐํ์ต๋๋ค(์ด ์ฃผ์ ์ ๋ํ ์ธ ๋ฒ์งธ ์๊ฒฌ!). ์ปจํธ๋กค์ด ๋ฌธ์์ด๋ก ๋ณํ๋ ๋ ์ซ์ ํ์์ ์์ ํ ์ฌ์ฉ์ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ด ์์ด์ผ ํฉ๋๋ค. ๊ทธ๊ฒ์ด ์์ผ๋ฉด ์ด ์ ์ด๋ ์ค์ ์ฌ์ฉ์์ ์๋นํ ์ ํ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด ์ปจํธ๋กค์ ๋ ๊ฐ์ง ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์๋ค๋ ์ ์ ๊ณ ๋ คํ ๋ C# ๋ฐ C++์์ ํ์งํ๋ฅผ ์ด๋ป๊ฒ ์๋ฒฝํ๊ฒ ์ง์ํ ๊น์?
์ฐ๋ฆฌ๋ ๋น์ ์ ๋ฃ๊ณ ! ๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์คํ๋ผ์ธ์์ ์กฐ์ฌํด ์์ง๋ง ๊ทผ๋ณธ์ ์ผ๋ก .NET์ ํ๋ซํผ๊ณผ ๋ณ๊ฐ๋ก ์์ฒด ํ์งํ๋ฅผ ์ํํฉ๋๋ค. ๋ฌด์ํ๊ธฐ ์ํ ์ฝ๋ฐฑ์ ํ๋ฅญํ ํ์ถ๊ตฌ๋ผ๊ณ ์๊ฐํ์ง๋ง ๊ทํ์ ์ต์ 1์ด ์ฐ๋ฆฌ๊ฐ ๊ฐ ์ ์๋ ๊ฒฝ๋ก๊ฐ ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ํ์ฌ ์์ ์ง์ ๋ฐ ๊ตฌ๋ฌธ ๋ถ์์ ์ํ WinRT API์๋ ํ์ํ ๋ชจ๋ ์ฌ์ฉ์ ์ง์ ๋ ธ๋ธ๊ฐ ์์ต๋๋ค. ์์ง ์กฐ์ฌ ์ค์ ๋๋ค.
์ด๊ฒ์ด ์ด๋ฏธ ๋
ผ์๋์๋์ง ํ์ธํ์ง ์์์ง๋ง ๋๊ตฌ๋ ์ง ๋ค์ ์ค ํ๋ ์ด์์ ์๋ฏธํ๋ ๊ณ์ฐ์ ์ํ ํจ์ ์ง์์ ๋ํ ํฐ ํ์์ฑ์ด๋ ๋ ์ค์ํ ์ ๋ก๋ฅผ ๋ณด๋์ง ๋นจ๋ฆฌ ๋ฌป๊ณ ์ถ์์ต๋๋ค.
cos(), sin(), tan(), asin(), acos(), atan(), sqrt(), log(), abs(), ceil(), floor(), degree equivalents of trig functions, hyperbolic functions, etc
์ ๋ ์ฐ๋ฆฌ์ ํ์์ ๋ง๊ฒ ์ํ ํ์๋ฅผ ๊ฟฐ๋งค๊ณ ์์ผ๋ฉฐ ๊ธฐ๋ฅ์ RPN์ผ๋ก ๋ณํํ๋ ๊ณผ์ ์ ๋ณต์กํ๊ฒ ๋ง๋ญ๋๋ค. ๋ฌธ์ ๋๋ ๋ถํ์ด ์ค๋ฅด๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ๊ฒฝ์ฐ. ๊ฐ์ธ์ ์ผ๋ก ๋๋ฌด ์ ๋ง๋๋ค๊ณ ๋ ์๊ฐํ์ง ์์ง๋ง, ์ ๋ก๊ฐ ๋ง๋ค๋ฉด ํฌ๊ฒ ๋ฌธ์ ๋ ์ ๋๋ ์๋๋ค.
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ด๋ฌํ ๊ธฐ๋ฅ์ ๊ฒ์ํ๊ธฐ๊ฐ ์ฝ์ง ์์ผ๋ฉฐ ๋ ๋ณต์กํ ๊ธฐ๋ฅ์ ๋ํ ์ง์์ด ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์์ ์ ๊ตฌ๋ฌธ ๋ถ์ ๋๋ ์ฌ์ ์ฒ๋ฆฌ ๋ ผ๋ฆฌ๋ฅผ ๊ตฌํํ ์ ์๋๋ก ์ฝ๋ฐฑ ์ด๋ฒคํธ์ ๋ํ ๊ตฌ๋ฌธ ๋ถ์์ ์์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ ๊ฐ์น์๋ ๊ฒ์ ์ฐ์ฐ์๋ก ํ
์คํธ ์
๋ ฅ์ ์์ํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ํ
์คํธ๋ฅผ ํด๋ฆญํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ์ ํ๋๋ฉฐ ์ด์ ๊ฐ์ ์ญ์ ํ๊ธฐ ์ํด ๋จผ์ ์ญ์ ๋ฅผ ๋๋ฅด์ง ์๊ณ ์ ๊ฐ์ ์
๋ ฅํ๊ฑฐ๋ ๋จ์ํ "*1.2" ๋๋ "x1.2" [Enter]
์ ๊ฐ์ ๊ฒ์ ์
๋ ฅํ๊ณ ์
๋ ฅํ ํ
์คํธ์ ๋ ์ด์ ์
๋ ฅ๋ ๊ฐ์ด ํฌํจ๋์ง ์๋๋ผ๋ ํ์ฌ ๊ฐ์ 1.2๋ฅผ ๊ณฑํฉ๋๋ค. "+2", "-5", "/3", "%120" ๋ฑ์ ๋ํด์๋ ๋์ผํ ์์
์ด ์ํ๋ฉ๋๋ค.
์ผ๋ถ ์ ๋ฌธ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋ฉ๋๋ค.
์ฐ๋ฆฌ(BeLight Software, Live Home 3D ํ๋ก์ ํธ)๋ ๊ฐ <=> ํ ์คํธ ๋ณํ์ ์ํด ํ๋ฌ๊ทธํ ValueConverter๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด NumberBox๊ฐ ์ ํฉํ์ง ์์ต๋๋ค.
์ด๋ฌํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ๋งค์ฐ ๋๋ฌผ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฑ์ ๊ฐ๋ ์ ๋ ฅ์ด ์์ง๋ง ๊ฐ๋ ๊ฐ์ผ ๋ฟ์ ๋๋ค. ์ ์๊ฒ ๊ฐ์ฅ ์ค์ํ ์ฉ๋๋ ๊ธฐ์กด์ ๊ฐ์ ์ถ๊ฐํ๊ฑฐ๋ ๊ธฐ์กด์ ์ซ์๋ก ๋๋ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์๊ฐ์ ์ ์ฝํ๊ณ ์ ์ ์ ์ผ๋ก ๊ณ์ฐ์ ํ์ง ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค. (Btw ๋ด ์๊ฐ์ Adobe ์ฑ์๋ 4๊ฐ์ ์ฐ์ ์ฐ์ฐ์๊ฐ ์์ต๋๋ค. https://adobexd.uservoice.com/forums/353007-adobe-xd-feature-requests/suggestions/12992463-support-math-operators-in-number -ํ๋)
๋ํ cos()์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ผ์ข ์ Excel ์ฑ์ ๋ง๋ค์ง ์๋ ํ ์ดํด๊ฐ ๋์ง ์๋ ๊ณณ์ ์ฌ์ฉํ๊ณ ์ถ์ง ์์ ๊ฒ์ ๋๋ค.
๋์๊ฒ ๊ฐ์ฅ ์ค์ํ ์ฉ๋๋ ๊ธฐ์กด์ ๊ฐ์ ์ถ๊ฐํ๊ฑฐ๋ ๊ธฐ์กด์ ์ซ์๋ก ๋๋ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์๊ฐ์ ์ ์ฝํ๊ณ ์ ์ ์ ์ผ๋ก ๊ทธ ๊ณ์ฐ์ ํ์ง ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
ํฐ ํ์ธ! @xyzzer๊ฐ ์ ์ํ ๊ฒ๊ณผ ๋น์ทํฉ๋๋ค. ๋น์ทํ ๊ตฌํ์ ์ดํด๋ณด๊ณ ์์ฐ์ค๋ฝ๊ณ ์ง๊ด์ ์ธ ๋ฐฉ์์ผ๋ก ์ด๋ฅผ ์ํํ ์ฌ์ง๊ฐ ์๋์ง ํ์ธํ๊ฒ ์ต๋๋ค.
์ฐ๋ฆฌ(BeLight Software, Live Home 3D ํ๋ก์ ํธ)๋ ๊ฐ <=> ํ ์คํธ ๋ณํ์ ์ํด ํ๋ฌ๊ทธํ ValueConverter๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด NumberBox๊ฐ ์ ํฉํ์ง ์์ต๋๋ค.
๋๋ ๋น์ ์ด ์ ๊ณตํ Slider ์์ ๋ฅผ ์ดํด๋ณด์๊ณ ๋งค์ฐ ํฉ๋ฆฌ์ ์ผ๋ก ๋ค๋ ธ์ต๋๋ค. NumBox์ ๋ํ IValueConverter์ ๊ฐ์น๋ฅผ ๋ณผ ์ ์์์ต๋๋ค. ๊ณง ์ดํด๋ณด๊ณ ์ฌ์์ ์ ์ ํ๊ฒ ๋ง๋์ง ๊ฒฐ์ ํ๋๋ก ๋ ธ๋ ฅํ๊ฒ ์ต๋๋ค. ์์ง ์๋ฌด๊ฒ๋ ์ฝ์์ด ์์ต๋๋ค!
@KevinTXY ์์์ ์ธ๊ธ
๋ํ "์ซ์ ์์๋ ์ซ์ ์ ์ฉ ํ
์คํธ ์ปจํธ๋กค์
๋๋ค ..." ์ฌ์์ ์์ ๋ถ๋ถ์์ ์ค๋ช
์ ์ฒซ ๋ฒ์งธ ์ค์ ์ค๋จํฉ๋๋ค.
์์ง ํ์งํ์ ๋ํ ์ง๋ฌธ์ด ์๋ค๋ ์ฌ์ค์ ๋๋์ต๋๋ค. ์ปจํธ๋กค์ด FrameworkElement
์์ ์์ํ๋ฏ๋ก(๋ฐ๋์?) Language ์์ฑ์ ์ก์ธ์คํ ์ ์์ผ๋ฏ๋ก ๋ค๋ฅธ ๋ชจ๋ FrameworkElement์ ๋ง์ฐฌ๊ฐ์ง๋ก ์์คํ
๋ก์บ UI ์ค์ ์ ์์กดํ์ง ์๊ณ ๋ก์บ ์ค์ ์ ์ง์ ์ง์ํฉ๋๋ค.
์ฆ, ์ญ์ง์ ๋ฐ ๊ทธ๋ฃนํ ๋ฌธ์์ ๊ฐ์ ํญ๋ชฉ์ ์ธ์คํด์ค๋ณ๋ก ์ค์ ํ ์ ์์ต๋๋ค.
์์ง ํ์งํ์ ๋ํ ์ง๋ฌธ์ด ์๋ค๋ ์ฌ์ค์ ๋๋์ต๋๋ค.
๋ฌธ์ ๋ ์ธ์ด๊ฐ ์์์ ์ ์ดํ๋ โโ๊ฒ์ด ์๋๋ผ ์ง์ญ/๋ฌธํ ์ค์ ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ํ์งํ๋ ์ซ์/ํตํ/๋ ์ง/์๊ฐ ํ์์ด ์ง์ญ๋ณ๋ก ์ ์ด๋๋ ๋ฐ๋ฉด ์ฌ๋ฐ๋ฅธ ์ธ์ด๋ก ํ์๋๋๋ก ์ ๋ฐ์ดํธ๋ UI ๋ฌธ์์ด์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋๋ค. ์ถ๊ฐ ์ ๋ณด: https://docs.microsoft.com/en-us/globalization/locale/locale-and-culture. ๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ๋ฅผ ๋ณต์กํ๊ฒ ํ๊ธฐ ์ํด Windows์์๋ ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ ์ํ์ฌ UI์์ ๋ก์บ ์ค์ ์ ์ฌ์ฉ์ ์ง์ ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์์์ ๊ตฌ๋ถ ๊ธฐํธ๋ฅผ ๊ธฐ๋ณธ๊ฐ ๋์ ์์์ ๋ฌธ์๋ก ์ง์ ํ๊ณ ์ถ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌด์๋ณด๋ค๋ .NET์ ์ฌ์ฉํ๋ฉด ์ฑ์์ ์ด๋ฅผ ์ฌ์ฉ์ ์ง์ ํ ์๋ ์์ผ๋ฏ๋ก ๊ฐ๋ฐ์๋ ์ฌ๊ธฐ์์ ํด๋น ์์ค์ ์ฌ์ฉ์ ์ง์ ์ ๊ธฐ๋ํฉ๋๋ค.
๋ฌธ์ ๋ ์ธ์ด๊ฐ ์์์ ์ ์ดํ๋ โโ๊ฒ์ด ์๋๋ผ ์ง์ญ/๋ฌธํ ์ค์ ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ํ์งํ๋ ์ซ์/ํตํ/๋ ์ง/์๊ฐ ํ์์ด ์ง์ญ๋ณ๋ก ์ ์ด๋๋ ๋ฐ๋ฉด ์ฌ๋ฐ๋ฅธ ์ธ์ด๋ก ํ์๋๋๋ก ์ ๋ฐ์ดํธ๋ UI ๋ฌธ์์ด์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋๋ค. ์ถ๊ฐ ์ ๋ณด: https://docs.microsoft.com/en-us/globalization/locale/locale-and-culture. ๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ๋ฅผ ๋ณต์กํ๊ฒ ํ๊ธฐ ์ํด Windows์์๋ ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ ์ํ์ฌ UI์์ ๋ก์บ ์ค์ ์ ์ฌ์ฉ์ ์ง์ ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์์์ ๊ตฌ๋ถ ๊ธฐํธ๋ฅผ ๊ธฐ๋ณธ๊ฐ ๋์ ์์์ ๋ฌธ์๋ก ์ง์ ํ๊ณ ์ถ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌด์๋ณด๋ค๋ .NET์ ์ฌ์ฉํ๋ฉด ์ฑ์์ ์ด๋ฅผ ์ฌ์ฉ์ ์ง์ ํ ์๋ ์์ผ๋ฏ๋ก ๊ฐ๋ฐ์๋ ์ฌ๊ธฐ์์ ํด๋น ์์ค์ ์ฌ์ฉ์ ์ง์ ์ ๊ธฐ๋ํฉ๋๋ค.
Language
๋ CultureInfo
๋ก ๋ณํ๋๋ ๊ฐ์ ์ฌ์ฉํฉ๋๋ค. ๋น๊ด๋ฆฌ ์ฝ๋ ๊ฐ๋ฐ์์๋ ๋ฌธํ๊ถ์ ๋ก์ผ์ผ์ด๋ผ๊ณ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์์์ , ๊ทธ๋ฃนํ, ์์ ๊ธฐํธ ๋ฑ์ ๋ํ ์์ฑ์ด ํฌํจ๋ NumberFormatInfo
์ ํ์ธ NumberFormat
์์ฑ์ด ํฌํจ๋ฉ๋๋ค.
๋ด ์ดํด๋ ์์คํ
์ค์ ์ ์์กดํ์ง ์๊ณ ์ปจํธ๋กค์ ํน์ ํ์ ์ง์ ๋๋ ๊ธฐํ ํ์งํ ์ธ๋ถ ์ฌํญ์ ์ ์ฉํ๋ ค๋ ๊ฒฝ์ฐ Language
๋ฅผ ์ง์ ํ๋ ๊ฒ์
๋๋ค.
์์ฑ์ ๋ํ ์ค๋ช ์ "FrameworkElement์ ์ ์ฉ๋๋ ํ์งํ/์ธ๊ณํ ์ธ์ด ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค"๋ผ๊ณ ๋ช ํํ๊ฒ ๋ช ์ํฉ๋๋ค.
๋๋ ๋ด๊ฐ ์ฐธ์กฐํ๋ ๋ฌธ์๋ฅผ ์๋ชป ์ดํดํ์ง๋ง ๋งํฌ๋ ํ์ด์ง์์ ๋ค๋ฃฌ ๋ด์ฉ์ ๋ชจ๋ ๋ท๋ฐ์นจํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ค๋ฅธ ์ฉ์ด๋ฅผ ์ฌ์ฉํ๋ C++ ๋ฐ C#์ ์ฉ์ด ๋ฌธ์ ์ผ ์ ์์ต๋๋ค.
๋ด๊ฐ ์๋ ๊ฒ์ XAML์์ ์ธ์ด๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ๋ค๋ฅธ ์ฑ๊ณผ ๋ค๋ฅธ ์ปจํธ๋กค์์ ๋ฌธํ๊ถ/๋ก์ผ์ผ์ ๊ฐ์ ์คํํ๋ ๋ฐฉ๋ฒ์ด๋ผ๋ ๊ฒ์
๋๋ค.
ํ์งํ์ ๊ดํด ๋ด๊ฐ ๋ณธ ์ง๋ฌธ์ ํน์ ์ซ์ ํ์ ๋๋ ๊ทธ๋ฃน ๋ฐ ์์์ ๊ตฌ๋ถ ๊ธฐํธ๋ฅผ ๊ฐ์ ํ๋ ๊ฒ์ ๊ดํ ๊ฒ์ ๋๋ค. ์๋๋ฉด ์ปจํธ๋กค์ ํ ์คํธ ๊ธฐ๋ฐ ์์ฑ(Header, PlaceholderText ๋ฑ)์ ํ์งํ์ ์ํฅ์ ์ฃผ์ง ์๊ณ ์ด๋ฌํ ์ปจํธ๋กค์ ์ ์ดํ๋ โโ์ง์ง ๋ฌธ์ ์ ๋๊น?
Language
๋CultureInfo
๋ก ๋ณํ๋๋ ๊ฐ์ ์ทจํฉ๋๋ค.
๋ค์ดํฐ๋ธ/WinRT์๋ ์๊ณ BCP-47 langs ๋ฌธ์์ด๋ง ์ป์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ๋ฌธ์ ์ ๋๋ค. .NET์์๋ ์ธ์ด ์ค์ ๊ณผ ํ์ ์ค์ ์ด ์๋ CultureInfo๋ฅผ ๋ฌถ์ต๋๋ค. WinRT์์๋ ๋ณ๊ฐ์ด๋ฉฐ CultureInfo ๊ฐ์ฒด์ ํด๋นํ๋ ๊ฒ์ด ์์ต๋๋ค.
ICU API ๊ฐ ์ฐ๋ฆฌ๊ฐ ์ฐพ๊ณ ์๋ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํ ์ ์๋ค๊ณ ๋ค์์ง๋ง ์์ง ์กฐ์ฌํ ๊ธฐํ๊ฐ ์์์ต๋๋ค.
๋๋ ๋ง์ดํฌ๋ก์ํํธ๊ฐ ์ด๊ฒ์ ๋ํ ์ด์์ ๊นจ๊ณ .net ๋ฌธํ/ํ์งํ(CultureInfo)์ ๋ค์ดํฐ๋ธ/WinRT ๊ฐ์ ๋ณํ ๋ฉ์ปค๋์ฆ์ ์์ ํ ๊ตฌํํ๋ ๊ฒ์ ๊ณ ๋ คํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด์์ ์ผ๋ก๋ ์ผ์ ํ๋ ์๋ก์ด ๋ฐฉ์์ ๊ณ ๋ คํ์ง ์์ ๊ฒ์ ๋๋ค.
๊ด๋ฆฌ ์ฝ๋๋ ๋๋ถ๋ถ์ LOB ์ฑ์ด ์์ฑ๋๋ ๊ฒ์ผ๋ก ์ฒ์๋ถํฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ํ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. WinRT๋ .net๊ณผ ๋์ผํ ํ์งํ ๋ฉ์ปค๋์ฆ/๊ธฐ์ ์ ๊ฐ์ ธ์์ผ ํ๋ฉฐ ๋ณํ์ ์๋์ด์ด์ผ ํฉ๋๋ค.
ํจ์ฌ ๋ ๋ง์ ์์ ์ด ๋ ๊น์? ๋จ๊ธฐ: ์, ์ฅ๊ธฐ: ์๋์ค. ๊ทธ๋ฌ๋ฉด NumberBox ์ปจํธ๋กค์ ๋ฆด๋ฆฌ์ค๊ฐ ์ง์ฐ๋ ์ ์์ต๋๊น? ์ฝ๋ฐฑ์ด ๋จ๊ธฐ๊ฐ์ ์ฌ์ฉ๋์ง ์๋ ํ ์๋ง๋.
์ด๊ฒ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ํ๋์ด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ค๋ฅธ ๊ณณ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ ๋๋ค. ํธ์ง ๊ฐ๋ฅํ CalendarDatePicker ๋ฑ๊ณผ ๊ฐ์ ๋ค๋ฅธ ์๋๋ฆฌ์ค์์ ์ด๋ฏธ ์ ์ฌํ ๋ฌธ์ ๋ฅผ ์์ํ ์ ์์ต๋๋ค. (#735)
@savoySchuler @jevansaks @chigy @mrlacey @KevinTXY
๋ถ๋ช
ํ FastDNA ํ์ ์
๋ ฅ ๋ฒํธ ํ๋ ๋์์ธ์ ์ํ Spinner ์ปจํธ๋กค์ ๋ํ ์์
์ ์ํํ๊ณ ์์ผ๋ฉฐ ๊ณ ๋ คํ ๊ฐ์น๊ฐ ์๋ ์ ์์ ๋ด๋์์ต๋๋ค.
๋ํ Arrow๊ฐ ์๋ โโChevron์ ์ฌ์ฉํ๋ ์ด์ ์ ๋ํด์๋ ์ง๋ฌธํ์ต๋๋ค.
https://github.com/microsoft/fast-dna/issues/2202
๋ฒํผ์ ๋๋ํ ๋๊ณ ์คํ ํ์ฅ ๋์์ธ์ ํธ๋ฒ๋ก ์ฌ์ฉํ๋ฉด ์ปจํธ๋กค ๋๋น๊ฐ ๋๋ฌด ์ข์ ๋ ์์ด๋์ด๊ฐ ๋ ์ ์์ต๋๊น? ๋ชจ๋ Microsoft UI ํ๋ ์์ํฌ์์ ์๋ํ๋ ๋ ์ด์์์ ๋ํ ํฉ์๊ฐ ์์ ์ ์์ต๋๊น?
@mdtauk , ์๋ ค์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
์ด๊ฒ์ด ํ
์คํธํ๊ณ ์ ์ฉ์ฑ์ ๊ฒ์ฆํ๋ ๋์์ธ์ธ์ง FastDNA ์ฌ๋๋ค๊ณผ ํจ๊ป ํ์ธํ์ญ์์ค.
์ข์ ํ,
์์์น ๋ชปํ ํด์์ ๋ํด ์ฌ๊ณผ๋๋ฆฝ๋๋ค. ์ ๋ NumberBox ํ ์ค๋กํ๋ก ๋์ ๊ฐ๊ณ @teaP ๊ฐ ์ ์ ํจ๊ป ๊ธฐ๋ฅ ๊ฐ๋ฐ์๋ก ํฉ๋ฅํ์ต๋๋ค! ์ฐ๋ฆฌ๋ ์ด ์ปจํธ๋กค์ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ฅผ ์ํด ์ฌ์ ํ 11์ ๋ง์ ๋ชฉํ๋ก ํ๊ณ ์์ผ๋ฉฐ WinUI 2.4๊ฐ ํฌํจ๋ ์์ ์ ์ธ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ณด๊ฒ ๋ ๊ฒ์ ๋๋ค.
์ด์ ์ํฌํ๋ก์๋ ๋ง์ ์ง์ด ์์ผ๋ฏ๋ก ๋ฏธํด๊ฒฐ ์ง๋ฌธ์ด๋ ๋ต๋ณ๋ ์ง๋ฌธ์ ๋ณด์กดํ๊ณ @teaP ์ ๋ด๊ฐ ๋ค์์ ๊ดํ ๋๋จธ์ง ๋ฏธํด๊ฒฐ ์ฃผ์ ํด๊ฒฐ์ ๋ง์น๋ ์๋ก์ด ์ฌ์ PR๋ก ํฌํ ํ ๊ฒ์ ๋๋ค.
์ ํจ์ฑ ๊ฒ์ฌ ํญ๋ชฉ์ด ํด๊ฒฐ๋์์ต๋๋ค. @LucasHaines ' ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ ์์ ์ด WinUI 3.0 ๋ฐ ๊ทธ ์ ์ NumberBox ๊ณํ ๋ฆด๋ฆฌ์ค์ ๋ํด ์์ ๋์ด ์์ผ๋ฏ๋ก NumberBox V1์์ ์ง์๋๋ ์ ํจ์ฑ ๊ฒ์ฌ ๋ชจ๋๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ค์์ต๋๋ค.
์ด๊ฑฐํ NumberBoxBasicValidationMode
{
์ฅ์ ๊ฐ์๋,
InvalidInput๋ฎ์ด์ฐ๊ธฐ,
};
WinUI 3.0 ๋ฐ ํ์ ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ ์์ ์ด ์์๋๋ฉด NumberBox V2์์ ์๋ ๊ณํ๋ IconMessage ๋ฐ TextBlockMessage ์ ํจ์ฑ ๊ฒ์ฌ ๋ชจ๋๋ก ํด๋น ์ด๊ฑฐํ์ ํ์ฅํ๋ ค๊ณ ํฉ๋๋ค.
์ด์ ์ด์ ์งํ ์ํฉ์ ๋ชจ๋ ์ ๋ฆฌํ๊ณ ๊ด๋ จ ์ง๋ฌธ์ ๊ฒ์ํ๊ณ ํผ๋๋ฐฑ์ ์์ฒญํ ๊ฒ์ ๋๋ค. ํจ๊ปํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๐
ํด. ์ด ์ผ์ ์ค์ค๋ก ํ๋ ค๊ณ ํ๋ ๊ฒ์ด ๋์๊ฒ ๊ฐ๊น์์ง๊ณ ์์๋ค.
ใ ใ ์๋์ ์ผ๋ก ๊ณ์ ํ์ผ๋ฉด ์ข์์ํ ๋ฐ ์ด๋ฒ ํ๊ธฐ๊ฐ ์ ๋ฅผ ์ง์น๊ฒ ํ๋ค์. ์๊ฒฐ์ด ๋๊ฑฐ ๋ณด๋ ๋คํ์ด๋ค์ ๊ณ์ ์ง์ผ๋ด์ผ๊ฒ ์ต๋๋ค!
์ ๋ฐ - ์ด๊ฒ์ ์ฌ์ ํ dev ๋ฐ PM ์ธก ๋ชจ๋์์ ํ์ฑ ๋ฌธ์ ์ถ์ ๊ณผ ํจ๊ป ์งํ ์ค์ธ ์์ ์์ ๋ช ์ฌํ์ญ์์ค. ์ ์ ํ ๋งํฌ์์ ์์ง ์ธ๊ธ๋์ง ์์ ๊ธฐ๋ฅ์ ๋ํ ๋ฒ๊ทธ๋ ์ผ๋ฐ์ ์ธ ๋์จํ ๋์ ๋ฐ๊ฒฌํ๋ฉด ์ ํฌ์๊ฒ ์๋ ค์ฃผ์ญ์์ค. ๐
@SavoySchuler , ์ฌ์์ ๋ํ ์ PR์ ์ด๊ฒ ์ต๋๊น? ๋ํ, ํนํ NaN ๋์คํ๋ ์ด์ ๊ด๋ จํ์ฌ ์ด ๋๊ธ ์์ ์ ๊ฐ ์ด ๋ด์ฉ์ ํ์ธํ์ จ์ต๋๊น? ๊ฐ์ฌ ํด์.
@SavoySchuler ์ง๊ธ๊น์ง ์ฌ์/NumberBox ์ฝ๋์ ๋ํ ๋ช ๊ฐ์ง ์๊ฒฌ. ๋ฐ๋ผ๊ฑด๋, ์ด๊ฒ์ ๋ํ ์๊ฒฌ์ ์ฌ์/๋ฌธ์์๋ ํฌํจ๋ ์ ์์ต๋๋ค. ์ ๋ฐ์ ์ผ๋ก, ์ด๊ฒ์ด ํจ๊ป ์ค๋ ๊ฒ์ ๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค!
์ฌ๊ธฐ์ '๋น๋'๋ผ๋ ๋จ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ ์ ์ด์ธ๋ฆฌ์ง ์์ต๋๋ค. ์ฌ๋ผ์ด๋ ์ปจํธ๋กค์์ TickFrequency๋ ํฑ์ด ์ ์ฒด ์ต๋-์ต์ ๋ฒ์์ ๊ณ์๋ก ๊ณ์ฐ๋๊ณ ํ์๋๊ธฐ ๋๋ฌธ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ปจํธ๋กค์์๋ ์ฆ๋ถ/๋จ๊ณ ํฌ๊ธฐ์ผ ๋ฟ์ ๋๋ค. 'StepAmount' ๋๋ 'StepValue'์ ๊ฐ๊น์ต๋๋ค. 'MinimumValue' ๋์ 'Minimum'๊ณผ ์ ์ฌํ 'Step'์ด ๋ ๋ซ์ต๋๋ค.
๋ํ ์ฌ์ฉ์๊ฐ ์ ์๋ ๋จ๊ณ๋ฅผ ๋ฒ์ด๋ ๊ฐ์ ์
๋ ฅํ ์ ์์ต๋๊น?
์๋ฅผ ๋ค์ด Minimum = 0, Maximum = 6, StepFrequency = 2์
๋๋ค. ์์ชฝ ํ์ดํ ๊ฐ์ ์ฌ์ฉํ๋ฉด {2, 4, 6}์ด ์ถฉ๋ถํ ๊ณต์ ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ ํจํ ๊ฐ์ผ๋ก 0.5๋ฅผ ์
๋ ฅํ ์ ์์ต๋๊น? ์๋๋ฉด 0 ๋๋ 2๋ก ๋ฐ์ฌ๋ฆผ๋ฉ๋๊น?
์ํ์ ๋ฐ์ฌ๋ฆผ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋ฉ๋๊น? ์ด๋ ํํ์์ ์ฌ์ฉํ์ฌ ํตํ ๊ฐ์ ์ ๋ ฅํ ๋ ํนํ ์ค์ํฉ๋๋ค. ํํ์์ด ๊ณ์ฐ๋ ํ ์ฌ์ฉ์ ์ง์ ๋ฐ์ฌ๋ฆผ์ ์ง์ ํ๊ฑฐ๋ ์ ๊ณตํ ์ ์์ด์ผ ํฉ๋๋ค. HalfAwayFromZero๋ ์์ํ๋ ค๊ณ ํ๋ ๊ฒ์ด์ง๋ง ๋ค๋ฅธ ๋ฐ์ฌ๋ฆผ ๋ชจ๋๋ ํ์ฉ๋์ด์ผ ํฉ๋๋ค.
NumberBox๊ฐ ๋ชจ๋ INumberFormatter/ INumberFormatter2 ๊ตฌํ์ ํ์ฉํ๋์ง ํ์ธํ๊ณ ์์ผ๋ก๋ ๊ณ์ ๊ทธ๋ ๊ฒ ํ ๊ฒ์ ๋๋ค(์ฝ๋์์ ๊ตฌํ๋๋ ๋ฐฉ์์ด๋ฏ๋ก ์ฌ์์์๋ ํธ์ถํ๋์ง ํ์ธํ๊ณ ์ถ์ต๋๋ค). ์ด๋ฅผ ํตํด ๊ธฐ์กด CurrencyFormatter/DecimalFormatter๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋น๊ตํ์ฌ ํ ์คํธ ํ์งํ๋ฅผ ์์ ํ ์ ์ดํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ด์ ๋ํ ์๋ฃจ์ ์ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ด ์ข์ต๋๋ค!
ํธ์ง: ๋ค์ ๋ฒ์ ์ ์ฒด ์ฌ์์ ์ฝ์ด์ผ ํฉ๋๋ค.
์ 'IsWrapEnabled' ์์ฑ์ ๋ง๋ ์ด์ ๋ ๋ฌด์์
๋๊น? NumberBox์ 'ํ
์คํธ'๋ผ๋ ์ฉ์ด๊ฐ ์ ์ ์ฉ๋์ง ์๋๋ค๊ณ ๋๋ผ๊ธฐ ๋๋ฌธ์ธ๊ฐ์?
๋ํ Wrap๊ณผ WrapWithOverflow๊ฐ ๋ชจ๋ ๋์ผํ๊ฒ ๊ตฌํ๋์ง๋ง ๋ ์ด๊ฑฐํ ๊ฐ์ด ๋์ผํ๋๋ก ํ์ฉํ๊ณ ์ค๋ช
์์ ๊ธฐ๋ฅ์ ์ค๋ช
ํ ์ ์๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค.
์ด ์ปจํธ๋กค์ด TextBox๋ณด๋ค ํค๋ณด๋ ๊ฐ์๊ธฐ ์ฌ์ฉ์ ๋ ์ ์ง์ํ๋์ง ํ์ธํ์ญ์์ค. ์๋ง๋ TextBox๊ฐ ์์ ๋ ๋๊น์ง/๋ง์ผ ์ ์์ ๊ฒ์ ๋๋ค. ํ์ง๋ง #1435๋ ์ ๋ง ๋ง์ ์ถ์ ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ๋ฐํ๋ ๋ฌธ์ ์ ๋๋ค. TextBox๋ 'Ctrl+V' ๋ถ์ฌ๋ฃ๊ธฐ ์์ฒด๋ฅผ ์ฒ๋ฆฌํ ๋ค์ ๋ชจ๋ KeyboardAccelerator๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ KeyboardAccelerator ๋ด์์๋ TextBox๊ฐ ์์ฒด ์์ ์ ์ํํ์์ ์ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๋น ๋ฅธ ์๊ฐ. ๊ฐ์ ๊ฐ๋ ๊ธ๋ฆฌํ๋ฅผ ์ถ๊ฐํ๋ ๊ฐ๋ ๋ชจ๋ ๊ฐ ์์ด์ผ ํฉ๋๋ค(360ยฐ ๋ฉ ์ด๋ผ์ด๋์ ๋ํ ๋ ผ๋ฆฌ).
์๋๋ฉด ์ด ๋ถ๋ก์ด TextBox #784์ ๋ํ ๋ด ์ ๋ฏธ์ฌ ์ ์์ผ๋ก ์์ผ๋ก ๋ ์ ์ฒ๋ฆฌ๋ ๊ฒ์ ๋๊น?
@mdtauk ,
๋ํ์ ๊ฒฝ์ฐ ์ค์ ๋ก IsWrapEnabled ์์ฑ์ ์ฉ๋์ ๋๋ค... ๋ค์์ ๋ฌธ์์ ๋ ๋ถ๋ถ์ ์ฝ์ด์ผ ํฉ๋๋ค.
๊ฒฐ๋ก ์ ๊ธฐ์กด API๋ก ์ํ๋ ๋ชจ๋ ์์ ์ ์ํํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@mdtauk ,
๋ํ์ ๊ฒฝ์ฐ ์ค์ ๋ก IsWrapEnabled ์์ฑ์ ์ฉ๋์ ๋๋ค... ๋ค์์ ๋ฌธ์์ ๋ ๋ถ๋ถ์ ์ฝ์ด์ผ ํฉ๋๋ค.
๊ฒฐ๋ก ์ ๊ธฐ์กด API๋ก ์ํ๋ ๋ชจ๋ ์์ ์ ์ํํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ Min, Max, Wrap์ด ๊ทธ๊ฒ์ ์ฒ๋ฆฌํ๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง, Degrees๋ ์์์ ๋ํ ๋ช ์์ ์ธ Angle ๋ชจ๋๋ฅผ ๊ฐ์ง ๋งํผ ์ถฉ๋ถํ ์ผ๋ฐ์ ์ ๋๊น? ๊ทธ๋ฆฌ๊ณ ๋ด๋ถ ๊ฐ์ ์ซ์์ผ ๋ฟ์ด๊ณ TextBox ํ ์คํธ์ ๊ธฐํธ๋ฅผ ํ์ํด์ผ ํฉ๋๋ค.
@teaP ์๋ก์ด Compact SpinButtonMode๋ฅผ ๋ณด๋ฉด ์ค๋ฒ๋ ์ด๋ ์คํ ๋ฒํผ์ ํ์ ๋ฐ ์จ๊ธฐ๊ธฐ ์ ๋๋ฉ์ด์ ์ ์ถ๊ฐํ ์ ์์ต๋๊น?
๋ํ ComboBox ๋ฐ ๊ธฐํ ์์ ํ๋๋ฅผ ํ๋ผ์ด์์ ์์์ ๋ ์ ์ผ์น์ํค๊ธฐ ์ํด ์ฌ๊ธฐ์ ์ํฌ๋ฆด์ ์ถ๊ฐํ๋ ๊ฒ์ ๊ณ ๋ คํ์ จ์ต๋๊น?
ํธ์ง: ๋คํฌ ํ ๋ง์์ ์ด ๊ฐ์์ฑ ๋ฌธ์ ๋ฅผ ์์ ํฉ๋๋ค. TextBox์ ์ด์ ์์๊ณผ ์ผ์น์ํค๋ ค๋ ์๋์ ๋๊น, ์๋๋ฉด ํ์ฌ ํ ๋ง ์์๊ณผ ์ผ์น์ํค๋ ค๋ ์๋์ ๋๊น? ์ด์จ๋ ์ํฌ๋ฆด์ ์ด๊ฒ์ ํด๊ฒฐํฉ๋๋ค.
@SavoySchuler , ์ฌ์์ ๋ํ ์ PR์ ์ด๊ฒ ์ต๋๊น? ๋ํ, ํนํ NaN ๋์คํ๋ ์ด์ ๊ด๋ จํ์ฌ ์ด ๋๊ธ ์์ ์ ๊ฐ ์ด ๋ด์ฉ์ ํ์ธํ์ จ์ต๋๊น? ๊ฐ์ฌ ํด์.
@adrientetar ํ์คํฉ๋๋ค. NumberBox๊ฐ ๋น์ด ์์ผ๋ฉด Value
๊ฐ NaN(์์ฒญํ ๋๋ก)์ผ๋ก ์ค์ ๋๊ณ PlaceholderText
๊ฐ ํ์๋ฉ๋๋ค.
@SavoySchuler ์ง๊ธ๊น์ง ์ฌ์/NumberBox ์ฝ๋์ ๋ํ ๋ช ๊ฐ์ง ์๊ฒฌ. ๋ฐ๋ผ๊ฑด๋, ์ด๊ฒ์ ๋ํ ์๊ฒฌ์ ์ฌ์/๋ฌธ์์๋ ํฌํจ๋ ์ ์์ต๋๋ค. ์ ๋ฐ์ ์ผ๋ก, ์ด๊ฒ์ด ํจ๊ป ์ค๋ ๊ฒ์ ๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค!
๋จ๊ณ ์ฃผํ์
์ฌ๊ธฐ์ '๋น๋'๋ผ๋ ๋จ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ ์ ์ด์ธ๋ฆฌ์ง ์์ต๋๋ค. ์ฌ๋ผ์ด๋ ์ปจํธ๋กค์์ TickFrequency๋ ํฑ์ด ์ ์ฒด ์ต๋-์ต์ ๋ฒ์์ ๊ณ์๋ก ๊ณ์ฐ๋๊ณ ํ์๋๊ธฐ ๋๋ฌธ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ปจํธ๋กค์์๋ ์ฆ๋ถ/๋จ๊ณ ํฌ๊ธฐ์ผ ๋ฟ์ ๋๋ค. 'StepAmount' ๋๋ 'StepValue'์ ๊ฐ๊น์ต๋๋ค. 'MinimumValue' ๋์ 'Minimum'๊ณผ ์ ์ฌํ 'Step'์ด ๋ ๋ซ์ต๋๋ค.
๋๋ ์ด ํผ๋๋ฐฑ์ @MikeHillberg ์ ๊ณต์ ํ์ผ๋ฉฐ ์ฐ๋ฆฌ๋ ์ง๊ธ ๊ทธ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ค๋ฅธ ๋ชจ๋ ์์ฑ ์ค์์ ์์ฒด ๋ฌธ์ํํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ์ด ์ถ๋ก ์ด ์ผํํ ๋งํผ ์ถฉ๋ถํ ์ ๋นํ๋์ด์ผ ํ๋ "SpinButtonStep" ๋ผ์ธ์ ๋ฐ๋ผ ๋ฌด์ธ๊ฐ๋ฅผ ๊ณ ๋ คํ๊ณ ์์ต๋๋ค. ๋ด๊ฐ ์๋ ค ์ฃผ๋ง. ์ง์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
๋ํ ์ฌ์ฉ์๊ฐ ์ ์๋ ๋จ๊ณ๋ฅผ ๋ฒ์ด๋ ๊ฐ์ ์ ๋ ฅํ ์ ์์ต๋๊น?
์๋ฅผ ๋ค์ด Minimum = 0, Maximum = 6, StepFrequency = 2์ ๋๋ค. ์์ชฝ ํ์ดํ ๊ฐ์ ์ฌ์ฉํ๋ฉด {2, 4, 6}์ด ์ถฉ๋ถํ ๊ณต์ ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ ํจํ ๊ฐ์ผ๋ก 0.5๋ฅผ ์ ๋ ฅํ ์ ์์ต๋๊น? ์๋๋ฉด 0 ๋๋ 2๋ก ๋ฐ์ฌ๋ฆผ๋ฉ๋๊น?
์ฌ์ฉ์๋ ์ํ๋ ์ซ์ ๋๋ ๋ฒ์ ๊ณต์ ์ ๋ ฅ์ ์ ๋ ฅํ ์ ์์ต๋๋ค. NumberFormatter ์์ฑ์ ์ฌ์ฉํ์ฌ ํด๋น ์ ๋ ฅ์ ๊ตฌ์ฑ๋ ํ์์ผ๋ก ๊ฐ์ ๋ณํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ ๋ ํ์ ์ง์ ์น์ ์ ์ฐธ์กฐํ์ธ์.
SpinButton์ ์ ์๋ SpinButton ๋จ๊ณ ํฌ๊ธฐ(API ์ด๋ฆ์ ํ์ฌ ๋ณด๋ฅ ์ค)๋งํผ๋ง ํด๋น ๊ฐ์ ๋๋ฆฌ๊ฑฐ๋ ์ค์ ๋๋ค. ๋ฐ๋ผ์ ์ ์ด์ธ๋ฆฌ๋ ํ์๊ณผ ๋จ๊ณ ํฌ๊ธฐ๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.
์ฌ์ฉ๋ ๋ฐ์ฌ๋ฆผ ์ ๋ต์ ์์์ ํตํด ์ ์๋ฉ๋๋ค. DecimalFormatter ์๋ฅผ ์์ธํ ์ค๋ช ํ๊ธฐ ์ํด, ์ฌ๊ธฐ์ ์ฌ์ฉ์๊ฐ ๊ตฌ์ฑ ํ ์์๋ ๋ผ์ด๋ฉ ํน์ฑ์ ์์ ๋๋ค.
๋ฐ์ฌ๋ฆผ
์ํ์ ๋ฐ์ฌ๋ฆผ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋ฉ๋๊น? ์ด๋ ํํ์์ ์ฌ์ฉํ์ฌ ํตํ ๊ฐ์ ์ ๋ ฅํ ๋ ํนํ ์ค์ํฉ๋๋ค. ํํ์์ด ๊ณ์ฐ๋ ํ ์ฌ์ฉ์ ์ง์ ๋ฐ์ฌ๋ฆผ์ ์ง์ ํ๊ฑฐ๋ ์ ๊ณตํ ์ ์์ด์ผ ํฉ๋๋ค. HalfAwayFromZero๋ ์์ํ๋ ค๊ณ ํ๋ ๊ฒ์ด์ง๋ง ๋ค๋ฅธ ๋ฐ์ฌ๋ฆผ ๋ชจ๋๋ ํ์ฉ๋์ด์ผ ํฉ๋๋ค.
๋ฐ์ฌ๋ฆผ์ ์์์ ํตํด ์ฒ๋ฆฌ๋ฉ๋๋ค. ๋ค์ ์ DecimalFormatter์ ๋ํด ์ค์ ํ ์ ์๋ ๋ฐ์ฌ๋ฆผ ์์ฑ์ ์์ ๋๋ค. ์ด๋ฅผ ๋ณด๋ค ๋ช ํํ๊ฒ ํ๊ธฐ ์ํด ์ง์นจ์ ์๋ฅผ ์ถ๊ฐํ๊ฒ ์ต๋๋ค. ๋ค์ ํ๋ฒ ๊ฐ์ฌํฉ๋๋ค. ๐
ํ์งํ
NumberBox๊ฐ ๋ชจ๋ INumberFormatter/ INumberFormatter2 ๊ตฌํ์ ํ์ฉํ๋์ง ํ์ธํ๊ณ ์์ผ๋ก๋ ๊ณ์ ๊ทธ๋ ๊ฒ ํ ๊ฒ์ ๋๋ค(์ฝ๋์์ ๊ตฌํ๋๋ ๋ฐฉ์์ด๋ฏ๋ก ์ฌ์์์๋ ํธ์ถํ๋์ง ํ์ธํ๊ณ ์ถ์ต๋๋ค). ์ด๋ฅผ ํตํด ๊ธฐ์กด CurrencyFormatter/DecimalFormatter๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋น๊ตํ์ฌ ํ ์คํธ ํ์งํ๋ฅผ ์์ ํ ์ ์ดํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ด์ ๋ํ ์๋ฃจ์ ์ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ด ์ข์ต๋๋ค!
๊ทธ๊ฒ์ด ํ์ฌ ๊ตฌํ์ ์๋์ ๋๋ค. ๋ฏธ๋ ๋ณด์ฅ์ ๋ณด์ฅํ๊ธฐ ์ํด NumberBox๋ ํ์งํ ๋ฐ ์์ ์๊ตฌ ์ฌํญ์ ๋ํ ์๋ฃจ์ ์ ๊ณ์ ๋ณด์ ํ ๊ฒ์ ๋๋ค. ํ์ฌ์ โโ๊ฐ๊น์ด ์ฅ๋์ ์ด๋ฅผ ๊ตฌํํ์ต๋๋ค.
ํ ์คํธ ์ค ๋ฐ๊ฟ
ํธ์ง: ๋ค์ ๋ฒ์ ์ ์ฒด ์ฌ์์ ์ฝ์ด์ผ ํฉ๋๋ค.
~์ 'IsWrapEnabled' ์์ฑ์ ๋ง๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ด๊ฒ์ TextBlock.TextWrapping ๋ฐ TextWrapping Enum์ ์ฌ์ฉํ๋ TextBox/XAML ๊ท์น์ ์๋ฐฐ๋ฉ๋๋ค. NumberBox์ 'ํ ์คํธ'๋ผ๋ ์ฉ์ด๊ฐ ์ ์ด์ธ๋ฆฌ์ง ์๋๋ค๊ณ ๋๋ผ๊ธฐ ๋๋ฌธ์ธ๊ฐ์?~
~๋ํ Wrap๊ณผ WrapWithOverflow๊ฐ ๋ชจ๋ ๋์ผํ๊ฒ ๊ตฌํ๋์์ง๋ง ๋ ์ด๊ฑฐํ ๊ฐ์ด ๋์ผํ๋๋ก ํ์ฉํ๊ณ ์ค๋ช ์์ ๊ธฐ๋ฅ์ ์ค๋ช ํ ์ ์๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค. ์ฌ๊ธฐ์ ์ ์์ฑ์ ์์ฑํ๋ฉด ์๋ก์ด ๊ฐ ๋ณํ๊ธฐ ๋ฑ์ด ํ์ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ธฐ์กด ๊ท์น์ ๊นจ๋จ๋ฆด ์ด์ ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.~
KeyboardAccelerator๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌ
์ด ์ปจํธ๋กค์ด TextBox๋ณด๋ค ํค๋ณด๋ ๊ฐ์๊ธฐ ์ฌ์ฉ์ ๋ ์ ์ง์ํ๋์ง ํ์ธํ์ญ์์ค. ์๋ง๋ TextBox๊ฐ ์์ ๋ ๋๊น์ง/๋ง์ผ ์ ์์ ๊ฒ์ ๋๋ค. ํ์ง๋ง #1435๋ ์ ๋ง ๋ง์ ์ถ์ ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ๋ฐํ๋ ๋ฌธ์ ์ ๋๋ค. TextBox๋ 'Ctrl+V' ๋ถ์ฌ๋ฃ๊ธฐ ์์ฒด๋ฅผ ์ฒ๋ฆฌํ ๋ค์ ๋ชจ๋ KeyboardAccelerator๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ KeyboardAccelerator ๋ด์์๋ TextBox๊ฐ ์์ฒด ์์ ์ ์ํํ์์ ์ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
NumberBox๋ TextBox๋ฅผ ํฌํจํ๊ณ ๊ทธ ์์ ์์ฑ๊ณผ ๊ตฌ์ฑ์ ์ถ๊ฐํฉ๋๋ค. ๋ ํฌ๊ด์ ์ธ ์ดํด๊ฐ ์์ ์ ์์ผ๋ฏ๋ก @jevan์ ํ๊ทธ๋ฅผ ์ง์
๊ฒฐ๊ตญ, ๋ฉ์ง ํผ๋๋ฐฑ @roblo! V1 NumberBox๊ฐ ๊ฐ๋ฅํ ํ ํฌ๊ด์ ์ด๊ณ ์์ ํ์ง ํ์ธํ๋ ๋ฐ ์๊ฐ์ ํ ์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๋ ๊ถ๊ธํ ์ ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์. ๐
@mdtauk
๋น ๋ฅธ ์๊ฐ. ๊ฐ์ ๊ฐ๋ ๊ธ๋ฆฌํ๋ฅผ ์ถ๊ฐํ๋ ๊ฐ๋ ๋ชจ๋ ๊ฐ ์์ด์ผ ํฉ๋๋ค(360ยฐ ๋ฉ ์ด๋ผ์ด๋์ ๋ํ ๋ ผ๋ฆฌ).
ยฐ
์๋๋ฉด ์ด ๋ถ๋ก์ด TextBox #784์ ๋ํ ๋ด ์ ๋ฏธ์ฌ ์ ์์ผ๋ก ์์ผ๋ก ๋ ์ ์ฒ๋ฆฌ๋ ๊ฒ์ ๋๊น?
์ง๊ธ๊น์ง NumberBox๋ ์ซ์๊ฐ ์๋ ๋ฌธ์์ ํ์๋ฅผ ์ง์ํ์ง ์์ต๋๋ค(ํํ์ ํ๊ฐ ์ ๊ณต์ ๋ฌธ์๋ ์ ๊ฑฐ๋จ).
#784์ ๋ํ ๊ทํ์ ์ ์์ ์ง๊ธ๊น์ง ์ฐ๋ฆฌ ํ๋ซํผ์์ ๊ฐ์ฅ ํฌ๊ด์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ ์ ์์ด ์คํ๋์ง ์์ผ๋ฉด ์ ์ ํ V2 ๊ธฐ๋ฅ์ธ NumberBox๋ฅผ ๋์ฒด ์๋จ์ผ๋ก ์๊ฐํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์ด๋ฏธ WinUI 3.0์ด ํ์ํ ๋ NumberBox์ ๋ํด ๋ง์ด ์์ฒญ๋ ๋ ๊ฐ์ง ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ ๋ชจ๋๊ฐ ์ฐจ๋จ๋์๊ธฐ ๋๋ฌธ์ WinUI 3.0๊ณผ ํจ๊ป ๋๋ ๊ทธ ์งํ์ V2๋ฅผ ์ถ์ํ ๊ณํ์ ๋๋ค. ๊ทธ๋์ V1์ด ์ถ์๋ ํ์ V2 ๋ฌธ์ ๋ฅผ ์ด โโ๊ฒ์ด๊ณ , ๊ฑฐ๊ธฐ์๋ ์ด๊ฒ์ ๊ธฐ๋กํด ๋๋๋ก ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค.
์ฌ๊ธฐ์ ๋ค๋ฅธ ๋ชจ๋ ์์ฑ ์ค์์ ์์ฒด ๋ฌธ์ํํ๊ธฐ ์ํด "SpinButtonStep" ๋ผ์ธ์ ๋ฐ๋ผ ์ด ์ถ๋ก ์ด ์ดํํ ๋งํผ ์ถฉ๋ถํ ์ ๋นํ๋์ด์ผ ํ๋ ๊ฒ์ ๊ณ ๋ คํ๊ณ ์์ต๋๋ค.
๋๋ StepFrequency๊ฐ Slider๊ฐ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณด์์ผ๋ฏ๋ก ์ฐ๋ฆฌ๋ ๊ทธ ์ฉ์ด์ ์ผ๊ด์ฑ์ ์ ์งํ๋ ค๊ณ ๋ ธ๋ ฅํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์คํ ๋ฒํผ๋ฟ๋ง ์๋๋ผ ๋๋๊ทธ ๋ฐ UIAutomation ๊ณต๊ธ์ ๋ณ๊ฒฝ ๊ฐ์๋ ์ ์ฉ๋๋ค๋ ์ ์ ์์ง ๋ง์ญ์์ค.
@robloo ๋ฐ @mdtauk , ยฐ์ ๋ํด ํ์ ํ๊ธฐ ์ ์ ์ค๋ ๋๋ฅผ ๋ ์์ธํ ์ฝ์ด์ผ ํฉ๋๋ค. NumberBox๊ฐ Text
์ Value
๊ธด๋ฐํ๊ฒ ๋๊ธฐํํ์ฌ ๊ฐ๋ฐ์๊ฐ ์ก์ ์ ์๋๋ก ํ๊ธฐ ๋๋ฌธ์ Text
์์ ์ด ๊ธฐํธ๋ฅผ ํ์ํ๋ ๊ฒ์ด ํ์ฌ ์ง์๋์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค Text
๋ณํ ์ค๋ฒํค๋ ์์ด ํ์ํ ์ ํ์
๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ์์ ์์ฑ์ ํตํด ์ด๊ฒ์ ๋ฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ง ๋ชปํ์ง๋ง ๋ฐฉ๋ฒ์ ์๊ณ ์๋ค๋ฉด ์๋ ค์ฃผ์ธ์!
์ฐ๋ฆฌ๋ ์ง๊ธ V1 ๋ฆด๋ฆฌ์ค์ ๋ง์๊ณ ์์ง๋ง V2์ ๊ฒฝ์ฐ ์ ๋์ฌ/์ ๋ฏธ์ฌ/ํน์ ๋ฌธ์๋ฅผ ๋ค์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๊ทธ ์ฌ์ด์ #784์ ๋ํ @mdtauk ์ ์ ์์ ์ง๊ธ๊น์ง ํ๋ซํผ์ ๋ํด ์ ์๋ ๊ฐ์ฅ ํฌ๊ด์ ์ธ ์๋ฃจ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด ์ ์์ด ํ์ํ ๊ธฐ๋ฅ์ด๋ผ๋ฉด ์์ง์๊ฐ๋ฝ์ ์น์ผ์ธ์ฐ๊ณ ๋๊ธ์ ๋ฌ์์ฃผ์ธ์.
@adrientetar , scroll-to-change๋ V1์ ์ ์ฉ๋์์ง๋ง ๋๋๊ทธ
์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์๋๋ฆฌ์ค์ ๋ํด ๋ ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? ์ฌ์ฉ์๊ฐ ์ด๊ฒ์ด ์ฌ์ฉ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์ด๋ป๊ฒ ์ ์ ์์ต๋๊น? ์๋ฃจ์ ์์ ๋ก์ปฌ๋ก ๊ตฌํ๋ ๊ฒ๊ณผ ๋น๊ตํ์ฌ ๋ชจ๋ NumberBox์์ ์ด๊ฒ์ด ๊ธฐ๋ณธ(๋๋ ์ต์ํ ์ฌ์ฉ ๊ฐ๋ฅ)์ด์ด์ผ ํ๋ ์ด์ ๋ฅผ ์ดํดํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๊น?
@SavoySchuler
๊ทํ์ ์๊ฒฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ฌ๊ธฐ์ ๋ค๋ฅธ ๋ชจ๋ ์์ฑ ์ค์์ ์์ฒด ๋ฌธ์ํํ๊ธฐ ์ํด "SpinButtonStep" ๋ผ์ธ์ ๋ฐ๋ผ ์ด ์ถ๋ก ์ด ์ดํํ ๋งํผ ์ถฉ๋ถํ ์ ๋นํ๋์ด์ผ ํ๋ ๊ฒ์ ๊ณ ๋ คํ๊ณ ์์ต๋๋ค.
๋๋ ๊ทธ ์ฉ์ด๋ฅผ ๋ง์ด ์ข์ํ์ง๋ง Slider์ ์ด๋ฏธ StepFrequency ์์ฑ์ด ์๋ค๋ ๊ฒ์ ๋์ณค์ต๋๋ค. ๊ทธ๊ฒ์ด ์ฌ์ค์ด๊ธฐ ๋๋ฌธ์ @jevansaks๊ฐ ์ธ๊ธํ ๊ฒ์ฒ๋ผ
๋ฐ์ฌ๋ฆผ์ ์์์ ํตํด ์ฒ๋ฆฌ๋ฉ๋๋ค. ๋ค์์ DecimalFormatter์ ๋ํด ์ค์ ํ ์ ์๋ ๋ฐ์ฌ๋ฆผ ์์ฑ์ ์์ ๋๋ค.
์ฌ์ฉ์๊ฐ NumberBox์ "1 / 3"์ ์ ๋ ฅํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ค์ ์์๊ฐ ๋ง์ต๋๊น?
Value
๋ ์ด์ {0.33333333...34}์ด๊ณ Text
๊ฐ์ ์ด์ "0.30"์
๋๋ค.Value
๋ฅผ ์ฝ์ผ๋ฉด Text
ํ์๋ ๋ฐ์ฌ๋ฆผ๋ ์ซ์๊ฐ ๋ฐํ๋์ง ์์ต๋๋ค.๋ํ Value ๋ฐ Text ์์ฑ์ด ๋ด๋ถ์ ์ผ๋ก ๋๋ฌด ๋ฐ์ ํ๊ฒ ๊ฒฐํฉ๋์ด ์๋ค๋ ์ ์ ๋ํด์๋ ์ฐ๋ คํ๊ณ ์์ต๋๋ค. ๋ฌธ์๋ ์ด ๊ฒฐํฉ์ ์ ์ํ์ง ์์ผ๋ฉฐ ๊ณ ๋๋ก ๊ตฌ์กฐํ๋ ์๋ฐฉํฅ ์ข ์์ฑ์ด ์๋๋ผ๋ฉด ๊ฒฐ์ฝ ์ฌ๋ฏธ๊ฐ ์์ต๋๋ค.
์ด๊ฒ์ด ๋ด๋ถ์ ์ผ๋ก ์ด๋ป๊ฒ ๊ตฌํ๋๋์ง๋ ํ์คํ์ง ์์ง๋ง ์ด๋ฅผ ์ํํ๋ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ double Value๋ฅผ ์ ์ผํ ๋ถ๋์ฐ์ผ๋ก ์ทจ๊ธํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ ์คํธ๋ ๊ฐ์ ํ์ํ๋ ๋ฒ์ ์ผ ๋ฟ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ฐ๋ฐ์๋ ์ํ๋ ๋๋ก ๊ฐ์ TextBox ๋ฐ Text ์์ฑ์ ํ์ํ ์ ์์ต๋๋ค(์ด์ ์ ์์ฒญํ ๋ ๊ธฐํธ ๋๋ ํผํธ/์ธ์น ๊ธฐํธ๋ฅผ ์ป์). ๋ชจ๋ ๊ฒ์ด ์ด๋ฏธ Value ์์ฑ์ ์ํด ๋ด๋ถ์ ์ผ๋ก ๊ตฌ๋๋๋ค๋ฉด ์ ํ ์ด๋ ต์ง ์์ ๊ฒ์ ๋๋ค. ์ฌ์ฉ์์ ํ ์คํธ ์ ๋ ฅ์ ์ด์จ๋ ์ ์ง๋์ง ์์ผ๋ฉฐ ํ์๋ฅผ ์ํด ๋ค์ ํ์์ด ์ง์ ๋๋ ๊ฐ์ ๋ค์ ๊ณ์ฐํ๋ ๋ฐ๋ง ์ฌ์ฉ๋ฉ๋๋ค.
์์๋ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
์ฝ๋์์ Text ๊ฐ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ์ฌ์ฉ์๊ฐ ์ผ๋ถ ํ ์คํธ๋ฅผ ์ ๋ ฅํ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ๊ฐ์ ์ง์ ๋ณ๊ฒฝํ๋ฉด ์์ ๋ฐ ํ ์คํธ ๋จ๊ณ๋ฅผ ๊ฑฐ์น๊ฒ ๋ฉ๋๋ค.
๊ฐ๊ณผ ํ ์คํธ ์ํ์ค ์ฌ์ด์ ์ ํํ ๋ฐ์ฌ๋ฆผ์ ์ ์งํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํธ์ง: ํํ์/์ ๋ ฅ ํ์ ๋ฐ ํ๊ฐ ์์ง์์ ๋ฐ์ฌ๋ฆผ์ ๊ตฌํํ๋ ค๋ฉด(๋ฌด์์ด๋ ํธ์ถ๋จ) RoundingAlgorithm ๊ณผ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ํ๊ธฐ ์ํด ์ ์์ฑ์ ์ถ๊ฐํด์ผ ํ ๊ฒ์ ๋๋ค. ํด๋น ์ด๊ฑฐํ์ ์ง์ ํ ๋๋ก Windows.Globalization.NumberFormatting์ ์ด๋ฏธ ์ ์๋์ด ์์ต๋๋ค. INumberFormatter2๋ ํ์ํ์ ์ฌ์ฉํด์ผ ํ๋ฉฐ ๋ค๋ฅธ ๊ฒ์ ์ฌ์ฉํ์ง ์์์ผ ํฉ๋๋ค. ๋ค์ ๊ณ์ฐ๊ณผ ์ต์ข ์ ์ผ๋ก ํ์๋๋ ํ ์คํธ ๊ฐ์ ๋จ๊ณ๋ฅผ ๋ถ๋ฆฌ๋ ์ํ๋ก ์ ์งํฉ๋๋ค.
@adrientetar , scroll-to-change๋ V1์ ์ ์ฉ๋์์ง๋ง ๋๋๊ทธ
์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์๋๋ฆฌ์ค์ ๋ํด ๋ ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? ์ฌ์ฉ์๊ฐ ์ด๊ฒ์ด ์ฌ์ฉ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์ด๋ป๊ฒ ์ ์ ์์ต๋๊น? ์๋ฃจ์ ์์ ๋ก์ปฌ๋ก ๊ตฌํ๋ ๊ฒ๊ณผ ๋น๊ตํ์ฌ ๋ชจ๋ NumberBox์์ ์ด๊ฒ์ด ๊ธฐ๋ณธ(๋๋ ์ต์ํ ์ฌ์ฉ ๊ฐ๋ฅ)์ด์ด์ผ ํ๋ ์ด์ ๋ฅผ ์ดํดํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๊น?
ํ๋๋ ๋ ํฌ๊ฒ ์ฆ๊ฐํด์ผ ํ๊ณ ๋ค๋ฅธ ํ๋๋ ๋ ์์์ผ ํฉ๋๋ค - Adobe ์ฑ์์ ์ ํํ ์์ญ/๊ฐ์ฒด๋ฅผ ์กฐ๊ธ์ฉ ์ด๋ํ๋ ๊ฒ๊ณผ ์ ์ฌํฉ๋๋ค.
์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์๋๋ฆฌ์ค์ ๋ํด ๋ ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น?
์๊ฐ์ ์๋ฏธ(์: ๊ฐ์ฒด ํ์ )๋ก ๊ฐ์ ๋ณ๊ฒฝํ๊ณ ์ถ์ง๋ง ์ด๋๊น์ง ๊ฐ๊ณ ์ถ์์ง ์ ๋ชจ๋ฅผ ๋ ์ ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ ์๊ฐ ๋์์ธ์ ์ข์ต๋๋ค.
์ฌ์ฉ์๊ฐ ์ด๊ฒ์ด ์ฌ์ฉ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์ด๋ป๊ฒ ์ ์ ์์ต๋๊น?
Adobe XD, Framer ๋ฑ ์ต์ ๋๊ตฌ์ ์๋ ๊ธฐ๋ฅ์ผ ๋ฟ์ ๋๋ค.
์๋ฃจ์ ์์ ๋ก์ปฌ๋ก ๊ตฌํ๋ ๊ฒ๊ณผ ๋น๊ตํ์ฌ ๋ชจ๋ NumberBox์์ ์ด๊ฒ์ด ๊ธฐ๋ณธ(๋๋ ์ต์ํ ์ฌ์ฉ ๊ฐ๋ฅ)์ด์ด์ผ ํ๋ ์ด์ ๋ฅผ ์ดํดํ๋ ๋ฐ ๋์์ ์ค ์ ์์ต๋๊น?
ํฐ์น ์ฅ์น์ ์์ ๋ ์ด๊ฒ์ ๊ฐ๋ ๊ฒ์ด ์ข๋ค๊ณ ์๊ฐํฉ๋๋ค. ํญ-๋๋๊ทธ๋ ์ฃผ์ด์ง ๊ฐ์ ์กฐ์ ํ๋ ํธ๋ฆฌํ ๋ฐฉ๋ฒ์ ๋๋ค(ํญ-๋๋๊ทธ๋ก ๊ฐ์ ์คํฌ๋กคํ๋ ์ ํ ์๊ฐ ์ ํ๊ธฐ ์์ ฏ๊ณผ ์ ์ฌ).
ํ๋๋ ๋ ํฌ๊ฒ ์ฆ๊ฐํด์ผ ํ๊ณ ๋ค๋ฅธ ํ๋๋ ๋ ์์์ผ ํฉ๋๋ค - Adobe ์ฑ์์ ์ ํํ ์์ญ/๊ฐ์ฒด๋ฅผ ์กฐ๊ธ์ฉ ์ด๋ํ๋ ๊ฒ๊ณผ ์ ์ฌํฉ๋๋ค.
RangeBase์๋ SmallChange ๋ฐ LargeChange ์์ฑ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ BeLight Software์ NumericUpDown ๋ฒ์ ์ RangeBase์์ ํ์๋๊ณ ArrowUp ๋ฐ ArrowDown ๋จ์ถํค๋ฅผ ์ฌ์ฉํ๋ SmallChange์ PageUp ๋ฐ PageDown ๋จ์ถํค๋ฅผ ์ฌ์ฉํ๋ LargeChange์ ์ํด ๊ฐ์ ๋ณ๊ฒฝํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ํผ์๊ฐ ์๋๋๋ค.
https://help.syncfusion.com/uwp/numeric-updown/gestures
https://docs.telerik.com/devtools/wpf/controls/radnumericupdown/features/navigation
์ปค๋ฎค๋ํฐ ์ฝ ์ค ๋ ์ค๋ฅธ ํค๋ณด๋ ์ซ์ ํคํจ๋์ ๋ํ ํ๋ง๋...
๋๋ถ๋ถ์ ์ฑ์์ "." ํคํจ๋ ๋ฒํผ์ ์ฌ์ ํ โโ"." ์์ด๊ฐ ์๋ ์ธ์ด๋ฅผ ์ฌ์ฉํ ๋ ์์์ ๊ตฌ๋ถ ๊ธฐํธ์ ๋ค๋ฅธ ๋ฌธ์์ ๋๋ค(์: ํ๋์ค์ด์ ","). ๋ฐ๋ผ์ "."๋ฅผ ๋๋ฅผ ๋ ๋ฉ๋ชจ์ฅ์์ ํค๋ฅผ ๋๋ฅด๋ฉด "." ์บ๋ฆญํฐ.
์ผ๋ถ ์ฑ(Excel์ด ์ด์ ๋ํด ๊ฐ์ฅ ์ ์๋ ค์ ธ ์์)์ ํคํจ๋ "."์ ํค ๋๋ฆ์ ์ฌํด์ํ๊ธฐ ์ํด ์ด ํค ๋์์ ๋ณ๊ฒฝํฉ๋๋ค. ์์์ ๊ตฌ๋ถ ๊ธฐํธ ์ ๋ ฅ์ผ๋ก. ํคํจ๋์ "๊ณ์ฐ๊ธฐ" ๋์์ธ๊ณผ ๋ ์ ํธํ๋ฉ๋๋ค.
๊ณ์ฐ๊ธฐ ์ฑ์ "." ์์ ๊ตฌ๋ถ ๊ธฐํธ๋ก ํด์ํ๋ ค๋ฉด ๋ฅผ ๋๋ฅด์ญ์์ค.
numberbox๋ "๊ณ์ฐ๊ธฐ"๋ก ๋ ๋ง์ด ์๋ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ปจํธ๋กค์์ "." ํคํจ๋์ ํค๋ฅผ ์์์ ๊ตฌ๋ถ ๊ธฐํธ๋ก ์ฌ์ฉํฉ๋๊น? ์๋๋ฉด ์ต์ํ ๊ฐ๋ฐ์๊ฐ ์ฃผ์ ํํฐ ๋ฐ ์ด๋ฒคํธ์ ์ธ์ธ ํ์ ์์ด ์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํด์ผ ํฉ๋๊น?
์์ฑ์ด ๊ธฐ๋ฅ์ ํ์ฑํ(์ตํธ์ธ์ธ ๊ฒฝ์ฐ) ๋๋ ๋นํ์ฑํ(์ตํธ์์์ธ ๊ฒฝ์ฐ)ํ๋๋ก ํ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด KeyPadDotAsDecimalSeparator="false"
?
์๋ ํ์ธ์ ๋ฉ์ง WinUI ์ปค๋ฎค๋ํฐ์ ๋๋ค! ๋ฆด๋ฆฌ์ค๋ฅผ ๋ณด๊ธฐ ์ํด ์ปค๋ฎค๋ํฐ์์ ์ ์ํ ์ฒซ ๋ฒ์งธ ์ ์ด ๊ธฐ๋ฅ์ ์ง์ผ๋ก ๊ฐ์ ธ๊ฐ ์ ์๋๋ก ๋์์ฃผ์ ์ ์ง์ฌ์ผ๋ก ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฒ์ด ์์ฒญ๋ ์์ ์ด์๊ณ ์ฌ๋ฌ๋ถ ๋ชจ๋๊ฐ ํจ๊ป ๋์์ธํ ์ ์๋ ์ต๊ณ ์ V1 ๊ธฐ๋ฅ ๋ชจ์์ ๋ง๋๋ ๋ฐ ์๋นํ ์๊ฐ์ ํฌ์ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋ํ ๋ชจ๋ ๊ฒ์ด V1 ๋ฆด๋ฆฌ์ค์ ํฌํจ๋์ง ์์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋งค์ฐ ์ํ๋ ์ผ๋ถ ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ ๊ตฌ์ฑ์ WinUI 3.0 ๊ธฐ๋ฅ ์์ ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ฉฐ, ์ผ๋ถ ์ํ๋ ๊ธฐ๋ฅ์ ์ ํจ์ฑ ๊ฒ์ฌ/์ ์ฉ ํ๋ฐ๋ถ์ ํ๋ฉดํ๋์ด์ผ ํ๋ฉฐ, ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ์ผ๋ถ ๊ธฐ๋ฅ์ V1 ๋ฆด๋ฆฌ์ค ์ดํ์ ๋ ์ ํ์๋ ๊ฒ์ ๋๋ค.
WinUI 3 ๋ฆด๋ฆฌ์ค์์ ์๋ํ NumberBox ๊ธฐ๋ฅ ์์ ์ ์๋ฃํ๋ ค๊ณ ํฉ๋๋ค. V1์์ ๋๋ฝ๋ ํ์ ๊ธฐ๋ฅ์ ๋ํ ํผ๋๋ฐฑ์ ์์งํ๊ธฐ ์ํ ๋ฌธ์ ๋ฅผ ์ด์์ต๋๋ค. NumberBox์ ํ์ํ ๊ฒ์ด ์์ผ๋ฉด ์ฌ๊ธฐ์ ์๊ฒฌ์ ๋จ๊ฒจ์ฃผ์ธ์: https://github.com/microsoft/microsoft-ui-xaml/issues/1736
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
NumberBox๋ก ๋์๊ฐ๊ธฐ
์ข์ ํ,
์์์น ๋ชปํ ํด์์ ๋ํด ์ฌ๊ณผ๋๋ฆฝ๋๋ค. ์ ๋ NumberBox ํ ์ค๋กํ๋ก ๋์ ๊ฐ๊ณ @teaP ๊ฐ ์ ์ ํจ๊ป ๊ธฐ๋ฅ ๊ฐ๋ฐ์๋ก ํฉ๋ฅํ์ต๋๋ค! ์ฐ๋ฆฌ๋ ์ด ์ปจํธ๋กค์ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ฅผ ์ํด ์ฌ์ ํ 11์ ๋ง์ ๋ชฉํ๋ก ํ๊ณ ์์ผ๋ฉฐ WinUI 2.4๊ฐ ํฌํจ๋ ์์ ์ ์ธ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ณด๊ฒ ๋ ๊ฒ์ ๋๋ค.
์ด์ ์ํฌํ๋ก์๋ ๋ง์ ์ง์ด ์์ผ๋ฏ๋ก ๋ฏธํด๊ฒฐ ์ง๋ฌธ์ด๋ ๋ต๋ณ๋ ์ง๋ฌธ์ ๋ณด์กดํ๊ณ @teaP ์ ๋ด๊ฐ ๋ค์์ ๊ดํ ๋๋จธ์ง ๋ฏธํด๊ฒฐ ์ฃผ์ ํด๊ฒฐ์ ๋ง์น๋ ์๋ก์ด ์ฌ์ PR๋ก ํฌํ ํ ๊ฒ์ ๋๋ค.
์ ํจ์ฑ ๊ฒ์ฌ ํญ๋ชฉ์ด ํด๊ฒฐ๋์์ต๋๋ค. @LucasHaines ' ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ ์์ ์ด WinUI 3.0 ๋ฐ ๊ทธ ์ ์ NumberBox ๊ณํ ๋ฆด๋ฆฌ์ค์ ๋ํด ์์ ๋์ด ์์ผ๋ฏ๋ก NumberBox V1์์ ์ง์๋๋ ์ ํจ์ฑ ๊ฒ์ฌ ๋ชจ๋๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ค์์ต๋๋ค.
์ด๊ฑฐํ NumberBoxBasicValidationMode
{
์ฅ์ ๊ฐ์๋,
InvalidInput๋ฎ์ด์ฐ๊ธฐ,
};
WinUI 3.0 ๋ฐ ํ์ ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ ์์ ์ด ์์๋๋ฉด NumberBox V2์์ ์๋ ๊ณํ๋ IconMessage ๋ฐ TextBlockMessage ์ ํจ์ฑ ๊ฒ์ฌ ๋ชจ๋๋ก ํด๋น ์ด๊ฑฐํ์ ํ์ฅํ๋ ค๊ณ ํฉ๋๋ค.
์ด์ ์ด์ ์งํ ์ํฉ์ ๋ชจ๋ ์ ๋ฆฌํ๊ณ ๊ด๋ จ ์ง๋ฌธ์ ๊ฒ์ํ๊ณ ํผ๋๋ฐฑ์ ์์ฒญํ ๊ฒ์ ๋๋ค. ํจ๊ปํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๐