Silverlight实用窍门系列:55.Silverlight中的Label、TextBlock、TextBox多种换行方式
在Silverlight中我们使用Label、TextBlock、TextBox等控件的时候经常会遇到换行的问题,在这里我们以这三个典型的控件来看看换行方式。在本文中我们把换行方式分为自动换行和手动换行来看。
自动换行
Label控件在Silverlight中不支持自动换行。
TextBlock和TextBox可以通过设置TextWrapping="Wrap"属性让文字超过控件宽度时自动换行。
手动换行
Label、TextBlock、TextBox控件都可以在后台中使用Environment.NewLine属性来手动换行。
TextBlock可以在Xaml代码中使用<LineBreak>标签来手动换行。
如果想要再TextBlock框中使用回车键的方式换行输入文字,则需要设置AcceptsReturn="True"属性。
首先我们看自动换行的Xaml实例代码实现如下:
<Border BorderBrush= "Blue" BorderThickness= "1" Width= "180" Height= "300" > <Canvas> <TextBlock Height= "49" HorizontalAlignment= "Left" Margin= "42,111,0,0" Name= "textBlock1" Text= "自动换行我下一句话将要换行了已经换行。" VerticalAlignment= "Top" TextWrapping= "Wrap" Width= "120" /> <TextBox Height= "60" HorizontalAlignment= "Left" Margin= "42,192,0,0" Name= "textBox1" VerticalAlignment= "Top" Text= "自动换行我下一句话将要换行了已经换行。" TextWrapping= "Wrap" AcceptsReturn= "True" Width= "120" /> </Canvas> </Border> |
其次我们来看手动换行的Xaml实例代码如下:
<Border BorderBrush= "Blue" Margin= "300 0 50 50" BorderThickness= "1" Width= "180" Height= "300" > <Canvas> <sdk:Label Height= "45" HorizontalAlignment= "Left" Margin= "42,10,0,0" Name= "label2" VerticalAlignment= "Top" Width= "220" /> <TextBlock Height= "45" HorizontalAlignment= "Left" Margin= "42,60,0,0" Name= "textBlock2" Text= "" VerticalAlignment= "Top" Width= "178" > <Run>手动换行你下一句话将要换行了,</Run> <LineBreak/> <Run>已经换行。</Run> </TextBlock> <TextBlock Height= "45" HorizontalAlignment= "Left" Margin= "42,110,0,0" VerticalAlignment= "Top" Name= "textBlock3" Text= "" Width= "178" ></TextBlock> <TextBox Height= "45" HorizontalAlignment= "Left" Margin= "42,160,0,0" Name= "textBox2" VerticalAlignment= "Top" AcceptsReturn= "True" Width= "210" > </TextBox> </Canvas> </Border> |
最后我们看手动换行的Xaml.cs代码实现如下:
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
this.label2.Content = "手动换行你下一句话将要换行了," + Environment.NewLine + "已经换行。";
this.textBox2.Text = "手动换行你下一句话将要换行了," + Environment.NewLine + "已经换行。";
this.textBlock3.Text= "手动换行你下一句话将要换行了," + Environment.NewLine + "已经换行。";
}
}
如需本文源码请点击 SLTest.zip 下载,本实例实现效果如下图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架