次のようなWPFのラベルのテキストに改行を追加するにはどうすればよいですか?
<Label>Lorem
ipsum</Label>
回答:
<Label><TextBlock>Lorem<LineBreak/>ipsum</TextBlock></Label>
TextBlockはインラインオブジェクトのコレクションを子として受け入れるため、TextBlockを使用する必要があります。つまり、TextBlock要素に3つのインラインアイテム(Run Text = "Lorem"、LineBreak、およびRun Text = "ipsum")を指定します。
次のことはできません。
<Label>Lorem<LineBreak/>ipsum</Label>`
ラベルは1つのコンテンツ子要素を受け入れるためです。
また、ユースケースが正確に何であるかはわかりませんが、Label要素内にTextBlockを配置したことに注意してください。繰り返しですか?実際には、必要に応じて。2つの要素の違いに関する良い記事があります:LabelとTextBlockの違い
Lorem
Ipsum
ViewModelまたはModelでこれを行うと、Environment.NewLineを使用すると、ローカリゼーションを含め、最も一貫した結果が得られることがわかりました。ビューでも直接機能するはずですが、私はそれをテストしていません。
例:
ビューで
<Label Content="{Binding SomeStringObject.ParameterName}" />
ViewModelの場合:
SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";
ボタンなどのコントロールに複数行のツールチップを追加する方法の例。ツールチップの幅は制限されているため、文が広すぎると折り返されます。
<!-- Button would need some properties to make it clickable.-->
<Button>
<Button.ToolTip>
<TextBlock Text="Line 1
Line 2" MaxWidth="300" TextWrapping="Wrap"/>
</Button.ToolTip>
</Button>
VS2019 + .NET 4.6.1 + WPFでテスト済み。
<TextBlock> <Run>First</Run> <LineBreak/> <Run>Second</Run> </TextBlock>