\n
にTextBlock
で改行させる方法はありますか?
<TextBlock Text="line1\nLine2" />
または、Text
属性内で中間改行を強制するより良い方法はありますか?
<LineBreak />
これは機能しません。テキスト文字列は外部ソースから設定されているため、Text
属性の値である必要があります。
私はLineBreak
に精通していますが、私が探している答えではありません。
私はこれが古い質問を復活させていることを知っていますが、私は同じ問題を抱えていました。私にとっての解決策は、HTMLエンコードされたラインフィード(&#10;
)。
Line1&#10;Line2
のように見える
ライン1
2行目
HTMLエンコード文字の詳細については、 w3schools をご覧ください。
これを試して:
<TextBlock>
line1
<LineBreak />
line2
</TextBlock>
最も簡単な方法は
<TextBlock> blabla <LineBreak /> coucou <LineBreak /> coucou 2 </TextBlock>
したがって、XAMLコードを記述するだけで、<LineBreak />
はまったく同じ意味を持ちます
HTMLで、またはC#で「\ n」。
行を2つのタグに分割するのはどうですか?
<StackPanel>
<TextBlock Text="Line1" />
<TextBlock Text="Line2" />
</StackPanel>
正しい使用方法は次のとおりです。
<TextBlock>
<Span>text1</Span>
<LineBreak/>
<Span>text2</Span>
</TextBlock>
<LineBreak />は、GridやStackPanelなどのコレクション内にある場合は機能しません。そのような場合、次のように機能します。
TextBlockのテキストをバインドしている場合、他の回答はいずれも機能しません。区切りたい場所のバインディングテキストに「\ n」を追加するだけです。
私はパーティーに遅れていますが、これは多かれ少なかれ私がやった方法です(私の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();
}
}
<HyperlinkButton
Content="Apply and restart this pplication! Note that modifying these settings requires the application to be restarted." />
CRLFの簡単な方法= !
!
-すべてのwpf、xaml、TextBlock、HyperlinkTextなどのsilverlightコントロールで動作します。
accessTextコントロールを使用するだけです。ラベルのように使用でき、TextWrapping = "WrapWithOverflow"プロパティがあります。
例えば。
私のものはそのようなもので、うまく機能しています。また、テキストを動的に変更しても問題はありません。
これもうまくいきます:
<TextBlock>
<Run Text="My Nice text"/>
<LineBreak/>
<LineBreak/>
<Run Text="After some linebreaks, I'm back!"/>
</TextBlock>
私は同様の問題を抱えていたため、xamlマークアップの文字列をTextBlockにバインドしたいと考えていました。後で使用するために、宣言的マークアップをTextBlock内の文字列に本質的に保存します。
これは私がやった方法です :TextBlockをサブクラス化してInlineCollectionをバインド可能にし、文字列とInlineCollection(または実際にはInlinesの汎用リスト)の間にConverterを記述しました。