在Silverlight中我们使用Label、TextBlock、TextBox等控件的时候经常会遇到换行的问题,在这里我们以这三个典型的控件来看看换行方式。在本文中我们把换行方式分为自动换行和手动换行来看。
自动换行
TextBlock和TextBox可以通过设置textwrapping="Wrap"属性让文字超过控件宽度时自动换行。
手动换行
Label、TextBlock、TextBox控件都可以在后台中使用Environment.NewLine属性来手动换行。
TextBlock可以在Xaml代码中使用<LineBreak>标签来手动换行。
如果想要再TextBlock框中使用回车键的方式换行输入文字,则需要设置AcceptsReturn="True"属性。
- <Border BorderBrush="Blue" BorderThickness="1" Width="180" Height="300">
- <Canvas>
- <TextBlock Height="49" HorizontalAlignment="Left" Margin="42,111,0"
- Name="textBlock1" Text="自动换行我下一句话将要换行了已经换行。"
- VerticalAlignment="Top" textwrapping="Wrap" Width="120" />
- <TextBox Height="60" HorizontalAlignment="Left" Margin="42,192,0"
- Name="textBox1" VerticalAlignment="Top"
- Text="自动换行我下一句话将要换行了已经换行。"
- textwrapping="Wrap" AcceptsReturn="True" Width="120" />
- </Canvas>
- </Border>
- <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"
- Name="label2" VerticalAlignment="Top" Width="220" />
- <TextBlock Height="45" HorizontalAlignment="Left" Margin="42,60,0"
- Name="textBlock2" Text=""
- VerticalAlignment="Top" Width="178" >
- <Run>手动换行你下一句话将要换行了,</Run>
- <LineBreak/>
- <Run>已经换行。</Run>
- </TextBlock>
- <TextBlock Height="45" HorizontalAlignment="Left" Margin="42,110,0"
- VerticalAlignment="Top" Name="textBlock3" Text="" Width="178"></TextBlock>
-
- <TextBox Height="45" HorizontalAlignment="Left" Margin="42,160,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 下载,本实例实现效果如下图:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。