XAML or HTML

003. 문자열 공백 유지(Preserve white spaces)

XAML 뽀개기

1
2
<!--Property element-->
<TextBlock>문자열     띄우기</TextBlock>
cs

 

Property element 문법 안에서는 공백을 유지할 없습니다.

 

1
2
3
4
5
6
7
8
<!--xml:space="preserve"-->
<TextBlock xml:space="preserve">문자열     띄우기</TextBlock>
 
<TextBlock xml:space="preserve">
    <TextBlock.Text>
        문자열     띄우기
    </TextBlock.Text>
</TextBlock>
cs

 

 

xml:space="preserve"를 정의하면 공백을 유지할 있습니다. 하지만 모든 공백을 유지하기 때문에

처럼 원치않는 결과를 보일 있습니다.

 

1
2
<!--Property-->
<TextBlock Text="문자열     띄우기"/>
cs

 

Property 정의에서는 간단히 공백을 유지할 있습니다.

 

1
2
3
4
5
6
7
8
<!--String resource-->
<TextBlock Text="{StaticResource StringResource}"/>
 
<TextBlock>
    <TextBlock.Text>
        <Binding Source="{StaticResource StringResource}"/>
    </TextBlock.Text>
</TextBlock>
cs

 

문자열은 여러가지 이유로 리소스 형태로 사용되는 일이 많습니다.


1
2
3
<Grid.Resources>
    <sys:String x:Key="StringResource" xml:space="preserve">문자열     띄우기</sys:String>
</Grid.Resources>
cs


리소스를 정의할 xml:space="preserve"를 미리 정의하면 공백을 유지할 있습니다.



샘플 코드 : https://github.com/CharlesKwon/XamlSimplified