WPF AutoGrid ์†Œ๊ฐœ

WPFAutoGrid

Charlie Brown๋‹˜์˜ WPF AutoGrid๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.


GitHub URL

WPF Gridโ€ฆ

์ผ๋ฐ˜์ ์œผ๋กœ Grid ์ปจํŠธ๋กค์ด WPF ๋ ˆ์ด์•„์›ƒ์—์„œ ์ฐจ์ง€ํ•˜๋Š” ๋น„์ค‘์€ ๋งค์šฐ ๋†’์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•œํŽธ์œผ๋กœ๋Š” ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ๋‹ค์†Œ ๋ถˆํŽธํ•˜๊ฑฐ๋‚˜ ๋˜ ์ง„์ž… ์žฅ๋ฒฝ์ด ๋†’์€ ๊ฒƒ์ด ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ๋ถ„์€ ํ–‰๊ณผ ์—ด์„ ์ข€ ๋” ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํ•œ๋ฒˆ ์ฏค ๊ณ ๋ฏผํ•œ ์ ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. :smile: ์ € ๋˜ํ•œ DependencyProperty๋ฅผ ํ™œ์šฉํ•ด์„œ ๋™์ ์œผ๋กœ ํ–‰๊ณผ ์—ด์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์™”์Šต๋‹ˆ๋‹ค.


์ œ๊ฐ€ ์†Œ๊ฐœํ•  ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” Grid์˜ ํ–‰๊ณผ ์—ด์˜ ๊ฐฏ์ˆ˜, ๊ทธ๋ฆฌ๊ณ  Size๋ฅผ ๊ธฐ์กด RowDefinitions ๋˜๋Š” ColumnDefinitions๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. AutoGrid๋Š” ๋ˆ„๊ฒŸ์œผ๋กœ๋„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ˜„์žฌ ๊ธฐ์ค€์œผ๋กœ ์•ฝ 68.3K ๋‹ค์šด๋กœ๋“œ ์ค‘์ธ ์ธ๊ธฐ ์žˆ๋Š” ๋ˆ„๊ฒŸ ํŒจํ‚ค์ง€์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋ฐฉ๋ฒ•์€ ์ง๊ด€์ ์ด๋ฉด์„œ๋„ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

<AutoGrid RowCount="2" RowHeight="auto,*" Columns="auto,200">
  <TextBlock/>
  <TextBox/>
  <ListBox/>
  <TextBox/>
</AutoGrid>

์ฃผ์š” ์†์„ฑ

  • Rows
  • RowCount
  • Columns
  • ColumnCount
  • Orientation
  • ChildMargin

Orientation๊นŒ์ง€ ์žˆ๊ตฐ์š”! ๋งŒ์•ฝ Vertical์ด๋ผ๋ฉด ์ปจํŠธ๋กค ์ˆœ์„œ๊ฐ€ ์˜ˆ์ƒ๋˜์‹œ๊ฒ ์ฃ ?
๊ทธ๋ฆฌ๊ณ  ๋ณ‘ํ•ฉ์€ ๊ธฐ์กด์ฒ˜๋Ÿผ ์ปจํŠธ๋กค์—์„œ Span์„ ํ†ตํ•ด ํ•˜์‹œ๋ฉด ์•Œ์•„์„œ ๊ณ„์‚ฐ ๋ฐ ์ ์šฉ์ด ๋ฉ๋‹ˆ๋‹ค.

์ œ๊ฐ€ ์ค€๋น„ํ•œ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ๊นŒ์ง€ ์ž…๋‹ˆ๋‹ค. :smile:
์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ข‹์•„์š” 7

ํ•ญ์ƒ Grid๋กœ UI๋ฅผ ๋””์ž์ธํ•˜๋ฉด์„œ ๋„ˆ๋ฌด ๊ธธ์–ด์ง€๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ์—ˆ๋Š”๋ฐ ํ•œ๋ฒˆ ์‚ฌ์šฉํ•ด๋ด์•ผ๊ฒ ๋„ค์š”!
์ข‹์€ ๊ธ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

์ข‹์•„์š” 3

๊ธฐ๋ณธ Grid๋ฅผ 100% ์‚ฌ์šฉ ์•ˆํ•  ์ˆ˜๋Š” ์—†๊ฒ ์ง€๋งŒ,
๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ๋ฒˆ๊ฑฐ๋กœ์šด ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ๋ฅผ ์ค„์—ฌ ์ฃผ๋‹ˆ ์ •๋ง ์œ ์šฉํ•˜๊ฒ ๋„ค์š”.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค~

์ข‹์•„์š” 1

์ฐธ๊ณ ๋กœ Core ๋ฒ„์ „๋„ ์žˆ์Šต๋‹ˆ๋‹ค!!