web-dev-qa-db-ja.com

WPFラベルの改行?

次のようなWPFのラベルのテキストに改行を追加するにはどうすればよいですか?

<Label>Lorem 
  ipsum</Label>
81
Natrium
<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の違い

112
Szymon Rozga

wPFでは、値"&#10;"または"&#xA;"を使用できます

例えば:

<Label Content="Lorem&#10;ipsum" />

(「10」はASCII改行の数)

または

<Label Content="Lorem&#xA;ipsum" />

( "A"はASCII 16進数の改行の数)

Example, with a border arround label to show boundry

91
00jt

ViewModelまたはModelでこれを行うと、Environment.NewLineを使用すると、ローカライズを含む最も一貫した結果が得られることがわかりました。ビューでも直接機能するはずですが、テストしていません。

例:

ビューで

<Label Content="{Binding SomeStringObject.ParameterName}" />

ViewModelで:

SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";
7
HeyZiko

改行はテキストブロックで機能することを理解しています。ただし、質問で述べたように、ラベルに改行が必要な場合は、文字列でこれを使用します。それ以外の場合は、このコメントにシーケンスを投稿できないため、間にスペースがあります。 &#x a;これらの5文字を​​スペースなしで一緒に使用して、目的の改行を取得します。

0
Scott Jasin