WPF Textblock, Text Atribut의 줄 바꿈
이 모든 걸 할 수 있는 방법은 없을까?\n
줄 바꿈을 하다TextBlock
?
<TextBlock Text="line1\nLine2" />
아니면 중간선을 강제로 끊는 더 좋은 방법이 있을까요?Text
속성?
<LineBreak />
이건 나한테는 안 통한다.그것은 그 가치여야 한다.Text
텍스트 문자열이 외부 소스로부터 설정되기 때문입니다.
잘 알고 있습니다LineBreak
하지만 그건 내가 원하는 답이 아니야.
이것을 시험해 보세요.
<TextBlock>
line1
<LineBreak />
line2
</TextBlock>
이것은 오래된 질문을 재확인하는 것이라는 것을 알지만, 나도 같은 문제가 있었다.해결책은 HTML 인코딩된 줄바꿈을 사용하는 것이었습니다.&#10;
).
Line1&#10;Line2
처럼 보인다
회선 1
회선 2
HTML 인코딩된 문자에 대한 자세한 내용은 w3schools를 참조하십시오.
가장 쉬운 방법은
<TextBlock> blabla <LineBreak /> coucou <LineBreak /> coucou 2 </TextBlock>
그냥 XAML 코드를 쓰면<LineBreak />
의 의미와 완전히 같다
HTML 또는 C#의 "\n"을 선택합니다.
<LineBreak/>
http://www.longhorncorner.com/UploadFile/mahesh/XamlLineBreak06092005152257PM/XamlLineBreak.aspx
줄을 두 개의 태그로 나누는 건 어때요?
<StackPanel>
<TextBlock Text="Line1" />
<TextBlock Text="Line2" />
</StackPanel>
<LineBreak/>는, 그리드나 스택 패널등의 컬렉션내에 있는 경우는 동작하지 않습니다.이러한 경우, 다음과 같이 동작합니다.
올바른 사용 방법은 다음과 같습니다.
<TextBlock>
<Span>text1</Span>
<LineBreak/>
<Span>text2</Span>
</TextBlock>
같은 텍스트 블록의 여러 줄에서 가장 잘 작동한 방법은 다음과 같습니다.
<TextBlock>
text1
<LineBreak/>
text2
</TextBlock>
TextWrapping="Wrap"을 사용하지 마십시오.TextWrapping="NoWrap"을 사용하거나 사용하지 마십시오.
<HyperlinkButton
Content="Apply and restart this pplication! Note that modifying these settings requires the application to be restarted." />
CRLF 심플한 방법 =!
!
- 모든 wpf, xaml, Silverlight 컨트롤(텍스트 블록, 하이퍼링크 등)에서 작업텍스트 등
TextBlock의 Text를 바인딩하는 경우 다른 응답은 작동하지 않습니다.바인드 텍스트에 '\n'을 추가하여 끊기만 하면 됩니다.
이것.&#10;
바인딩을 사용했을 때는 효과가 없었습니다.하지만 이 방법은 효과적입니다.
$"first line {Environment.NewLine} second line"
파티에 늦었지만..이 방법은 거의 동일합니다(ItemSources는 포맷되지 않은 일반 문자열이며 'convertBack'은 필요 없습니다).
public class SpaceToLineBreakConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return (!String.IsNullOrEmpty(value as string))
? new Regex(@"\s").Replace(value as string, "\n")
: value;
}
public object ConvertBack(object value, Type targetType, object parameter,System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
이것 또한 정상적으로 동작합니다.
<TextBlock>
<Run Text="My nice text"/>
<LineBreak/>
<LineBreak/>
<Run Text="After some linebreaks, I'm back!"/>
</TextBlock>
비슷한 문제가 있어서 String of xaml 마크업을 TextBlock에 바인드하고 싶었습니다.TextBlock 내의 선언 마크업을 나중에 사용할 수 있도록 문자열에 저장하는 것이 중요합니다.
이렇게 했습니다.InlineCollection을 바인드하기 위해 TextBlock을 서브클래스하고 문자열과 InlineCollection 사이에 Converter를 썼습니다(또는 실제로는 Inlines의 일반 목록).
액세스만 사용텍스트 컨트롤레이블처럼 사용할 수 있고 TextWrapping= 특성이 있습니다."Wrap With Overflow"
예:
내 것도 그렇고 잘 되고 있어.또한 텍스트를 2진법적으로 변경해도 문제가 없습니다.
이것도 잘 동작합니다.
이 방법을 사용하면 각 행의 텍스트 속성을 필요에 따라 수정할 수 있습니다.
<TextBlock>
<StackPanel>
<TextBlock FontSize="12" FontWeight="Bold" >My Text One</TextBlock>
<TextBlock FontFamily="Times New Roman" FontStyle="Italic">
- My Text Two
</TextBlock>
</StackPanel>
</TextBlock>
언급URL : https://stackoverflow.com/questions/837367/wpf-textblock-linebreak-in-text-attribute
'source' 카테고리의 다른 글
Eclipse용 플러그인을 작성하는 방법은 무엇입니까? (0) | 2023.04.27 |
---|---|
Ruby on Rails vs.의 경우 NET MVC 3.NET 가이? (0) | 2023.04.27 |
Bash 스크립트가 전체 경로를 얻을 수 있는 신뢰성 높은 방법 (0) | 2023.04.22 |
Windows 명령줄에서 명령 실행 시간을 측정하려면 어떻게 해야 합니까? (0) | 2023.04.22 |
로컬 데이터베이스를 Windows Azure 데이터베이스로 복원하는 방법 (0) | 2023.04.22 |