次のようなWPFのラベルのテキストに改行を追加するにはどうすればよいですか?
<Label>Lorem
ipsum</Label>
<Label><TextBlock>Lorem<LineBreak/>ipsum</TextBlock></Label>
TextBlockはInlineオブジェクトのコレクションを子として受け入れるため、TextBlockを使用する必要があります。したがって、TextBlock要素に3つのインラインアイテム、Run Text = "Lorem"、LineBreak、およびRun Text = "ipsum"を指定します。
次のことはできません。
<Label>Lorem<LineBreak/>ipsum</Label>`
ラベルは1つのコンテンツの子要素を受け入れるためです。
また、ユースケースが正確にわからないが、Label要素内にTextBlockを配置したことに注意してください。繰り返しですか?実際には、必要に応じて。 2つの要素の違いに関する良い記事を次に示します。 LabelとTextBlockの違い
wPFでは、値" "
または"
"
を使用できます
例えば:
<Label Content="Lorem ipsum" />
(「10」はASCII改行の数)
または
<Label Content="Lorem
ipsum" />
( "A"はASCII 16進数の改行の数)
ViewModelまたはModelでこれを行うと、Environment.NewLineを使用すると、ローカライズを含む最も一貫した結果が得られることがわかりました。ビューでも直接機能するはずですが、テストしていません。
例:
ビューで
<Label Content="{Binding SomeStringObject.ParameterName}" />
ViewModelで:
SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";
改行はテキストブロックで機能することを理解しています。ただし、質問で述べたように、ラベルに改行が必要な場合は、文字列でこれを使用します。それ以外の場合は、このコメントにシーケンスを投稿できないため、間にスペースがあります。 &#x a;これらの5文字をスペースなしで一緒に使用して、目的の改行を取得します。