2013-08-27 2 views
2

나는 여러 개의 TextBlocks을 컨트롤 안에 가지고 있습니다. 블록의 너비는 고정되어 있으며 TextWrap 속성은 Wrap으로 설정됩니다. 텍스트는 바인딩을 통해 제공됩니다.Silverlight TextBlock은 전체 단어 만 감싸 야합니다.

지금 줄 바꿈은 SL에서 줄의 다른 문자와 맞지 않을 때 발생합니다. 어떤 결과는 "빠른 형제"\ r \ n "wn fox jumps"과 같은 결과입니다.

그러나 그 블록은 단어 경계에서만 텍스트 을 감싸고 단어 중간에 임의의 위치가 아닌 것이 좋습니다. 예상되는 결과는 "빠른 갈색"\ r \ n "여우 점프"과 비슷해야합니다.

<TextBlock 
    x:Name="Foo" 
    Foreground="#FFD4E4FF" 
    FontSize="14.667" 
    FontFamily="Arial" 
    Canvas.Left="586.671" 
    LineHeight="23.707" 
    TextWrapping="Wrap" 
    Text="{Binding Bar}" 
    Canvas.Top="170" 
    Width="120" /> 

어떤 아이디어 :

이것은 TextBlocks 중 하나에 대한 XAML입니까?

+0

무엇이 발생합니까 (TextBlock의 크기는 어떻게 변합니까?). SL4와 SL5에서'TextBlock'은 글자가 아닌 단어로 감싸고 있습니다. – icebat

+0

@icebat 'TextBlocks'를 호스팅하는 컨트롤은 어리석게 복잡합니다. 그곳에서 많은 것들을 빈 솔루션으로 복사 해 이상한 포장 동작을 일으키는 원인을 찾았습니다. 그러나 당신이 말한대로 : 그것은 단어로 포장을 유지합니다. 나는 거기에 컨트롤의 몇 가지 조합을 * 정말 * 포장 과정을 망칠 것 같아요. –

+0

제 생각 엔이 이상한 포장은 제한된 높이로 인해 발생할 수 있습니다. 주어진 높이와 너비를 가진'TextBlock'이 전체 텍스트를 자동 줄 바꿈으로 감싸지 못한다면 단어를 깨뜨릴 수 밖에 없습니다. – icebat

답변

0

마침내 문제가 발견되었습니다. 어떤 이유로 우리가 데이터베이스에서로드 한 문자열에 디버거와 텍스트 편집기에서 일반 공백처럼 보이지만 Silverlight에서 처리하지 않은 문자가 포함되어 있습니다. 문제의 문자는 non-breaking space