\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 コードを記述するだけで、 HTML の や C# の "\n" と<LineBreak />
まったく同じ意味になります。
<LineBreak/>
http://www.longhorncorner.com/UploadFile/mahesh/XamlLineBreak06092005152257PM/XamlLineBreak.aspx
Grid や StackPanel などのコレクション内にある場合、<LineBreak/> は機能しません。このような場合、次のように動作します。
行を 2 つのタグに分割するのはどうですか?
<StackPanel>
<TextBlock Text="Line1" />
<TextBlock Text="Line2" />
</StackPanel>
それを使用する正しい方法は次のとおりです。
<TextBlock>
<Span>text1</Span>
<LineBreak/>
<Span>text2</Span>
</TextBlock>
<HyperlinkButton
Content="Apply and restart this pplication! Note that modifying these settings requires the application to be restarted." />
CRLF 簡単な方法 =!
!
- すべての wpf、xaml、Silverlight コントロール (TextBlock、HyperlinkText など) に対応
同じ Textblock 内の複数の行に対して私にとってうまくいった最良の方法は次のとおりです。
<TextBlock>
text1
<LineBreak/>
text2
</TextBlock>
TextWrapping="Wrap" は使用しないでください。TextWrapping="NoWrap" を使用するか、何も使用しません。
TextBlock の Text をバインドしている場合、他の答えはどれも機能しません。改行したい場所への結合テキストに '\n' を追加するだけです。
私はパーティーに遅れましたが..これは多かれ少なかれ私がやった方法です.
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();
}
}
AccessText コントロールを使用するだけです。ラベルのように使用でき、プロパティ TextWrapping="WrapWithOverflow" があります
例えば。
私のはそのようなもので、うまく機能しています。また、テキストを動的に変更しても問題はありません。
私は同様の問題を抱えていて、xaml マークアップの文字列を TextBlock にバインドしたいと考えていました。基本的に、宣言型マークアップを TextBlock 内の文字列に格納して、後で使用できるようにします。
これが私が行った方法です: TextBlock をサブクラス化して InlineCollection をバインド可能にし、文字列と InlineCollection (または実際にはインラインの一般的なリスト) の間に Converter を記述しました。