๋ชฉ๋กLanguage/C# (5)

728x90

๐Ÿ‘ฉ๐Ÿป‍๐ŸŒพ

[C#/WPF] ํŒ์—… ๋ฉ”์„ธ์ง€ ๋„์šฐ๊ธฐ

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” WPF ๋‚ด์—์„œ ํŒ์—… ๋ฉ”์„ธ์ง€๋ฅผ ๋„์šฐ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ž‘์„ฑํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. WPF์—์„œ๋Š” ํŒ์—… ๋ฉ”์„ธ์ง€ ํ˜•์‹์ด MessageBox๋ฐ–์— ์—†์–ด์„œ ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํŒ์—… ๋ฉ”์„ธ์ง€ ๊ธฐ๋Šฅ์ธ ํ† ์ŠคํŠธ(Toast)๋ฅผ TextBlock๊ณผ DoubleAnimation์„ ์ด์šฉํ•˜์—ฌ ๋น„์Šทํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ๋ดค์Šต๋‹ˆ๋‹ค. ์šฐ์„ , ๋ฒ„ํŠผ์ด ๋ˆŒ๋ ธ์„ ๋•Œ ํŒ์—… ๋ฉ”์„ธ์ง€๊ฐ€ ๋œจ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด Button๊ณผ ๋ฉ”์„ธ์ง€๋ฅผ ๋„์šธ TextBlock์„ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ, ํŒ์—… ๋ฉ”์„ธ์ง€๋ฅผ ๋„์šธ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.private void ToastMessage(string message) { Color clr = Color.FromRgb(200, 210, 145); SolidCo..

Language/C# 2023. 2. 1. 16:26
[C#/WPF] ๋ฒ„ํŠผ ๋ชจ์„œ๋ฆฌ ๋‘ฅ๊ธ€๊ฒŒ ๋งŒ๋“ค๊ธฐ

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋ฒ„ํŠผ(Button)์˜ ๋ชจ์„œ๋ฆฌ๋ฅผ ๋‘ฅ๊ธ€๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฒ•์— ๋Œ€ํ•ด ์จ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. WPF์—์„œ ๋ฒ„ํŠผ์„ ์ฒ˜์Œ ์ƒ์„ฑ์‹œ, ์ดˆ๊ธฐ ๋ชจ์„œ๋ฆฌ๊ฐ’์€ 0์œผ๋กœ ๊ฐ์ง„ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค. ์ด๋•Œ, ๋ชจ์„œ๋ฆฌ๋ฅผ ๋‘ฅ๊ธ€๊ฒŒ ํ•ด์ฃผ๋Š” ์†์„ฑ์ด ์žˆ๋Š”๋ฐ์š” ๋ฐ”๋กœ 'CornerRadius' ์ž…๋‹ˆ๋‹ค. ์ด ์†์„ฑ์€ ์†์„ฑ์ฐฝ์—์„œ๋Š” ์ฐพ์•„๋ณผ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— xaml์—์„œ ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•ด์„œ ๊ฐ’์„ ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„ , ๋ฒ„ํŠผ์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•ด์ค๋‹ˆ๋‹ค. ์ด์ œ xaml์—์„œ ํ•ด๋‹น ๋ฒ„ํŠผ์— ๋Œ€ํ•œ CornerRadius ์†์„ฑ๊ฐ’์„ ์„ค์ •ํ•ด์ฃผ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์— ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ํƒœ๊ทธ ์•ˆ์— TargetType์„ ๋ชจ์„œ๋ฆฌ๋กœ ์ง€์ •ํ•ด์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Property๋ฅผ CornerRadius๋กœ ์„ค์ •ํ•˜๊ณ  ๊ฐ’์„ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ๋ชจ์„œ๋ฆฌ๊ฐ€ ๋‘ฅ๊ธ€์–ด์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋‚˜์˜ ..

Language/C# 2023. 1. 30. 10:51
[C#/WPF] ํ˜„์žฌ ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ํ‘œ์‹œํ•˜๊ธฐ

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ(Data Binding)์„ ์‚ฌ์šฉํ•ด์„œ ํ˜„์žฌ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ํ‘œ์‹œํ•˜๋Š” ๋ฒ•์— ๋Œ€ํ•ด ์ž‘์„ฑํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ Data Binding์ด๋ž€? ๋ง๊ทธ๋Œ€๋กœ ๋ฌถ์–ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. View(xaml)์™€ ์ฝ”๋“œ(cs) ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌถ์–ด์„œ ์ง์ ‘ ์ ‘๊ทผ์„ ํ•˜์ง€ ์•Š์•„๋„ ์„œ๋กœ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ์ด ๋˜์—ˆ์„ ๋•Œ ๋ฐ”๋€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ˜์˜์ด ๊ฐ€๋Šฅํ•ด์ง€๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ €, ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  csํŒŒ์ผ์— ์•„๋ž˜์™€ ๊ฐ™์€ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ, xaml์— ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๊ฐ๊ฐ ํ‘œ์‹œํ•  TextBlock 2๊ฐœ๋ฅผ ์ƒ์„ฑํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. TextBlock์„ ์ƒ์„ฑํ–ˆ์œผ๋‹ˆ ์ด์ œ ๊ฐ๊ฐ์˜ Text์— ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ์ •๋ณด๊ฐ€ ๋œจ๋„๋ก ์•ž์„œ ์ƒ์„ฑํ•œ DateNow ํด๋ž˜์Šค์˜ ๊ฐ์ฒด ์ •๋ณด์™€ ๋ฐ”์ธ๋”ฉํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ์„ , ์•„๋ž˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด xaml์— ํƒœ๊ทธ ์•ˆ์—..

Language/C# 2023. 1. 27. 17:06
[C#/WPF] ์™ธ๋ถ€ ํฐํŠธ ์ ์šฉํ•˜๊ธฐ

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” WPF์— ์™ธ๋ถ€ ํฐํŠธ๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ž‘์„ฑํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ์„ , visual studio์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ํฐํŠธ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํฐํŠธ๋ฅผ ๋‹ค์šด์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ, visual studio์—์„œ ์ž‘์—… ์ค‘์ธ ํ”„๋กœ์ ํŠธ ๋‚ด์— 'Font' ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์ค€ ๋’ค, ํด๋”์— ๋‹ค์šด ๋ฐ›์€ ํฐํŠธ ํŒŒ์ผ์„ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํฐํŠธ ํŒŒ์ผ์˜ ์†์„ฑ์„ Resource๋กœ ์ง€์ •ํ•ด์ค๋‹ˆ๋‹ค. ์ด์ œ, ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ํฐํŠธ๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์œ„ ์ฝ”๋“œ์—์„œ ๋ณด์ด๋Š” ๊ฑฐ์ฒ˜๋Ÿผ FontFamily="WpfApp2; component/Font/#GyeonggiTitleOTF Light" ๋ฅผ xaml์— ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ์ฃผ์˜ํ•  ์ ์€ # ๋’ค์— ์˜๋ฌธํฐํŠธ๋ช…์„ ์จ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํฐํŠธ๋ช…์€ ํฐํŠธ ํŒŒ์ผ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ํ•ด๋‹น ํฐํŠธ์ฒ˜๋Ÿผ ..

Language/C# 2023. 1. 27. 15:00