102

\nで改行を作成する方法はありTextBlockますか?

<TextBlock Text="line1\nLine2" />

Textまたは、属性内で中間改行を強制するより良い方法はありますか?

<LineBreak />

Textテキスト文字列が外部ソースから設定されているため、属性の値である必要があります。

私はよく知ってLineBreakいますが、それは私が探している答えではありません。

4

16 に答える 16

134

これを試して:

<TextBlock>
    line1
    <LineBreak />
    line2
</TextBlock>
于 2009-05-07T22:24:04.870 に答える
121

これが古い質問を復活させていることは知っていますが、同じ問題がありました。私にとっての解決策は、HTML エンコードされた改行 ( &amp;#10;) を使用することでした。

Line1&amp;#10;Line2

のように見える

ライン1 ライン
2

HTML エンコードされた文字の詳細については、w3schoolsをチェックしてください

于 2009-10-28T16:05:43.980 に答える
11

最も簡単な方法は

<TextBlock> blabla <LineBreak /> coucou <LineBreak /> coucou 2 </TextBlock>

したがって、XAML コードを記述するだけで、 HTML の や C# の "\n" と<LineBreak />まったく同じ意味になります。

于 2013-01-09T03:33:54.473 に答える
8

<LineBreak/>

http://www.longhorncorner.com/UploadFile/mahesh/XamlLineBreak06092005152257PM/XamlLineBreak.aspx

于 2009-05-07T22:23:40.660 に答える
7

Grid や StackPanel などのコレクション内にある場合、<LineBreak/> は機能しません。このような場合、次のように動作します。

コレクション内の改行

于 2014-05-29T22:12:59.967 に答える
6

行を 2 つのタグに分割するのはどうですか?

<StackPanel>
    <TextBlock Text="Line1" />
    <TextBlock Text="Line2" />
</StackPanel>
于 2009-05-08T00:13:23.907 に答える
6

それを使用する正しい方法は次のとおりです。

<TextBlock>  
    <Span>text1</Span>  
    <LineBreak/>  
    <Span>text2</Span>  
</TextBlock>
于 2012-04-10T14:15:46.370 に答える
5
  <HyperlinkButton 
        Content="Apply and restart this pplication!&#10;&#13;Note that modifying these settings requires the application to be restarted."   />

CRLF 簡単な方法 =!&#10;&#13;

!&#10;&#13; - すべての wpf、xaml、Silverlight コントロール (TextBlock、HyperlinkText など) に対応

于 2012-08-31T08:24:43.700 に答える
5

同じ Textblock 内の複数の行に対して私にとってうまくいった最良の方法は次のとおりです。

<TextBlock>  
    text1  
    <LineBreak/>  
    text2  
</TextBlock>

TextWrapping="Wrap" は使用しないでください。TextWrapping="NoWrap" を使用するか、何も使用しません。

于 2021-01-13T22:35:17.143 に答える
4

TextBlock の Text をバインドしている場合、他の答えはどれも機能しません。改行したい場所への結合テキストに '\n' を追加するだけです。

于 2013-03-10T20:43:20.907 に答える
3

私はパーティーに遅れましたが..これは多かれ少なかれ私がやった方法です.

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();
    }
}
于 2014-03-26T06:46:44.630 に答える
2

AccessText コントロールを使用するだけです。ラベルのように使用でき、プロパティ TextWrapping="WrapWithOverflow" があります

例えば。

私のはそのようなもので、うまく機能しています。また、テキストを動的に変更しても問題はありません。

于 2012-12-04T12:58:53.917 に答える
1

私は同様の問題を抱えていて、xaml マークアップの文字列を TextBlock にバインドしたいと考えていました。基本的に、宣言型マークアップを TextBlock 内の文字列に格納して、後で使用できるようにします。

これが私が行った方法です: TextBlock をサブクラス化して InlineCollection をバインド可能にし、文字列と InlineCollection (または実際にはインラインの一般的なリスト) の間に Converter を記述しました。

于 2011-04-08T09:23:30.347 に答える