在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