天天看點

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框中使用Enter鍵的方式換行輸入文字,則需要設定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"> 

            <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 + "已經換行。"; 

    } 

<a target="_blank" href="http://blog.51cto.com/attachment/201204/181029527.png"></a>

本文轉自程興亮 51CTO部落格,原文連結:http://blog.51cto.com/chengxingliang/827104