๐Ÿ–ฅ๏ธ/C#

[C# WPF] WPF TextTrimming์ด ๊ฐ€๋Šฅํ•œ ์กฐ๊ฑด

HanaV 2023. 10. 31. 16:57
728x90
 
 

TextTrimming

 

WPF์—์„œ๋Š” TextBlock์˜ TextTrimming ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…์ŠคํŠธ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด์งˆ ๋•Œ ํŠธ๋ฆฌ๋ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ปจํŠธ๋กค์˜ ๊ธธ์ด๋ณด๋‹ค ๋‚ด๋ถ€ ํ…์ŠคํŠธ์˜ ๊ธธ์ด๊ฐ€ ๊ธธ์–ด์ง€๋ฉด, ๋์— ... ์„ ํ‘œ์‹œํ•ด์„œ ํ…์ŠคํŠธ๊ฐ€ ๋” ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ค€๋‹ค.

์•„๋ž˜์ฒ˜๋Ÿผ TextBlock์„ ํ•˜๋‚˜ ๋งŒ๋“ค์ž.

<TextBlock Height="20" Width="100" Text="I am REALLY long text" />

์œ„ ํ…์ŠคํŠธ๋Š” Width 100์ธ TextBlock๋ณด๋‹ค ๊ธธ๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์ฒ˜๋Ÿผ ์ž˜๋ฆฌ๊ฒŒ ๋œ๋‹ค.

ํ˜„์žฌ๊นŒ์ง€๋Š” ์œ„ ํ…์ŠคํŠธ๊ฐ€ "I am REALLY long"์ธ์ง€, ์•„๋‹ˆ๋ฉด ๋’ค์— ๋” ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜๊ฐ€ ์—†๋‹ค.
์ด ๋•Œ TextTrimming ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ...์ด ๋ณด์ด๊ฒŒ ๋œ๋‹ค.

 TextTrimming="WordEllipsis"

 

Text Trimming์—๋Š” 3๊ฐ€์ง€ ์†์„ฑ์ด ์žˆ๋‹ค.
1. None: ํ…์ŠคํŠธ๊ฐ€ ํ™”๋ฉด์„ ๋„˜์–ด๊ฐ€๋ฉด ์ž๋ฅด์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ ํ‘œ์‹œ
2. CharacterEllipsis: ํ…์ŠคํŠธ๊ฐ€ ์ปจํŠธ๋กค์˜ ๊ฐ€๋กœ ๊ณต๊ฐ„์„ ๋ฒ—์–ด๋‚  ๋•Œ, ๋งจ ๋ ๋ฌธ์ž๋ถ€ํ„ฐ ์ค„์ž„ํ‘œ(...)๋กœ ๋Œ€์ฒด
3. WordEllipsis: ํ…์ŠคํŠธ๋ฅผ ๋‹จ์–ด ๋‹จ์œ„๋กœ ์ž˜๋ผ๋‚ด์–ด (...)๋กœ ๋Œ€์ฒด

 

ํ•˜์ง€๋งŒ TextTrimming์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปจํŠธ๋กค์—๋Š” ์ œํ•œ์ด ์žˆ๋‹ค.

1. Display์šฉ ๋ฐ์ดํ„ฐ์—๋งŒ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ธฐ๋ณธ WPF Control์— ์žˆ๋Š” TextBlock์—๋Š” TextTrimming ์†์„ฑ์ด ์žˆ์ง€๋งŒ, TextBox๋งŒ ํ•ด๋„ TextTrimming ์†์„ฑ์ด ์—†๋‹ค.

DevExpress Control ์ค‘ TextEdit์€ TextTrimming ์†์„ฑ์ด ์žˆ๊ธด ํ•˜์ง€๋งŒ, ์ด๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ ์šฉ์ด ์•ˆ ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

<dxe:TextEdit Height="20" Width="100" TextTrimming="CharacterEllipsis" Text="I am REALLY long text"/>

์™œ๋ƒํ•˜๋ฉด ํ˜„์žฌ์˜ TextEdit์€ ์–ธ์ œ๋“ ์ง€ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค๋ฉด, TextTrimming์ด ์ž๋™์œผ๋กœ CharacterEllipsis๋กœ ์ ์šฉ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

<dxe:TextEdit Height="20" Width="100" Text="I am REALLY long text" EditMode="InplaceInactive"/>

ComboboxEdit๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. IsTextEditable ์†์„ฑ์„ False๋กœ ์„ค์ •ํ•ด์ฃผ๋ฉด, ๋”ฐ๋กœ ์ถ”๊ฐ€ ์„ค์ •์„ ์•ˆ ํ•ด๋„ ์ž๋™์œผ๋กœ TextTrimming์ด CharacterEllipsis๋กœ ๋œ๋‹ค.

<dxe:ComboBoxEdit Height="20" Width="100" IsTextEditable="False">
    <dxe:ComboBoxEditItem>Item1111111111111111</dxe:ComboBoxEditItem>
    <dxe:ComboBoxEditItem>Item2222222222222222</dxe:ComboBoxEditItem>
    <dxe:ComboBoxEditItem>Item3333333333333333</dxe:ComboBoxEditItem>
</dxe:ComboBoxEdit>

<dxe:ComboBoxEdit Height="20" Width="100" TextTrimming="CharacterEllipsis">
    <dxe:ComboBoxEditItem>Item1111111111111111</dxe:ComboBoxEditItem>
    <dxe:ComboBoxEditItem>Item2222222222222222</dxe:ComboBoxEditItem>
    <dxe:ComboBoxEditItem>Item3333333333333333</dxe:ComboBoxEditItem>
</dxe:ComboBoxEdit>

 

2. DevExpress์˜ GridControl์€ ๊ธฐ๋ณธ์ ์œผ๋กœ TextTrimming์„ ์ ์šฉํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ GridControl์€ ๋”ฐ๋กœ TextTrimming ์„ค์ •์„ ํ•˜์ง€ ์•Š์•„๋„ ์ž๋™์œผ๋กœ Trimming์ด ๋œ๋‹ค. ํŽธ์ง‘์ด ๊ฐ€๋Šฅํ•˜๋“  ๋ง๋“  ์ƒ๊ด€์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

 

Editable ํ•œ ComboboxEdit์„ TextTrimming ํ•˜๋ ค๊ณ  4 5์‹œ๊ฐ„ ๋™์•ˆ ์‚ฝ์งˆ ํ•œ ๊ฒฐ๊ณผ๋‹ค ๐Ÿ™ƒ๐Ÿ™ƒ๐Ÿ™ƒ

728x90