Làm cách nào để thêm dòng mới trong văn bản của nhãn trong WPF, chẳng hạn như sau?
<Label>Lorem
ipsum</Label>
Câu trả lời:
<Label><TextBlock>Lorem<LineBreak/>ipsum</TextBlock></Label>
Bạn cần sử dụng TextBlock vì TextBlock chấp nhận là con một tập hợp các đối tượng Nội tuyến. Vì vậy, bạn đang cung cấp cho phần tử TextBlock ba mục Nội tuyến: Run Text = "Lorem", LineBreak và Run Text = "ipsum".
Bạn không thể làm như sau:
<Label>Lorem<LineBreak/>ipsum</Label>`
vì nhãn chấp nhận một phần tử con nội dung.
Ngoài ra, không chắc chắn chính xác trường hợp sử dụng của bạn là gì nhưng hãy lưu ý rằng tôi đã đặt một TextBlock bên trong phần tử Nhãn của bạn. Nó có lặp đi lặp lại không? Không hẳn, tùy thuộc vào nhu cầu của bạn. Đây là một bài viết hay về sự khác biệt giữa hai yếu tố: Sự khác biệt giữa Label và TextBlock
Lorem
Ipsum
trong WPF, bạn có thể sử dụng giá trị " "
hoặc"
"
Ví dụ:
<Label Content="Lorem ipsum" />
("10" là số ASCII cho dòng mới)
hoặc là
<Label Content="Lorem
ipsum" />
("A" là số ASCII cho dòng mới trong hex)
Khi thực hiện việc này trong ViewModel hoặc Model, tôi nhận thấy rằng việc sử dụng Environment.NewLine có kết quả nhất quán nhất, bao gồm cả bản địa hóa. Nó cũng sẽ hoạt động trực tiếp trong Chế độ xem, nhưng tôi chưa thử nghiệm điều đó.
Thí dụ:
Theo quan điểm
<Label Content="{Binding SomeStringObject.ParameterName}" />
Trong ViewModel:
SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";
Ví dụ về cách thêm ToolTip có nhiều dòng vào một điều khiển, chẳng hạn như một nút. Chú giải công cụ bị giới hạn về chiều rộng, vì vậy nó sẽ bị quấn nếu một câu quá rộng.
<!-- 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>
Đã thử nghiệm trên VS2019 + .NET 4.6.1 + WPF.
<TextBlock> <Run>First</Run> <LineBreak/> <Run>Second</Run> </TextBlock>