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 下载,本实例实现效果如下图:

         

posted @ 2012-02-20 12:33  程兴亮  阅读(8537)  评论(10编辑  收藏