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实例代码实现如下:
1 <Border BorderBrush="Blue" BorderThickness="1" Width="180" Height="300"> 2 3 <Canvas> 4 5 <TextBlock Height="49" HorizontalAlignment="Left" Margin="42,111,0,0" 6 7 Name="textBlock1" Text="自动换行我下一句话将要换行了已经换行。" 8 9 VerticalAlignment="Top" TextWrapping="Wrap" Width="120" /> 10 11 <TextBox Height="60" HorizontalAlignment="Left" Margin="42,192,0,0" 12 13 Name="textBox1" VerticalAlignment="Top" 14 15 Text="自动换行我下一句话将要换行了已经换行。" 16 17 TextWrapping="Wrap" AcceptsReturn="True" Width="120" /> 18 19 </Canvas> 20 21 </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代码实现如下:
1 public partial class MainPage : UserControl 2 { 3 public MainPage() 4 { 5 InitializeComponent(); 6 this.label2.Content = "手动换行你下一句话将要换行了," + Environment.NewLine + "已经换行。"; 7 this.textBox2.Text = "手动换行你下一句话将要换行了," + Environment.NewLine + "已经换行。"; 8 this.textBlock3.Text= "手动换行你下一句话将要换行了," + Environment.NewLine + "已经换行。"; 9 } 10 }
如需本文源码请点击 SLTest.zip 下载,本实例实现效果如下图:
本文出处:http://www.cnblogs.com/chengxingliang/archive/2012/02/20/2343757.html(非常感谢)