上一篇,介绍了Canvas布局控件在Blend中的使用。本篇继续介绍布局控件StackPanel,ScrollViewer和Border。
相对于Grid和Canvas来说,StackPanel,ScrollViewer和Border是比较简单的布局控件,实现的功能相对来说单一。
首先来说说StackPanel控件。从字面意思理解,是堆栈面板的意思。堆栈内的所有内容将按照顺序进行排列,排列方式分水平排列和垂直排列两种方式。
对于StackPanel的使用,主要是对控件水平或者垂直排列,使用该控件排列控件,比Grid设置表格控制要容易很多。
例如,在Grid中要设置Row和Column,然后将控件放置到各个Cell中,才能达到对齐布局的效果,而在StackPanel中只要使用Orientation属性控制就可以了。
这里我们简单演示一下,在Blend中应用StackPanel
选中StackPanel后,在主窗口画一个StackPanel容器。
然后选择按钮控件,在StackPanel中,画一个高为30的按钮。然后选中该按钮,复制创建三个新按钮,在复制粘贴的时候,会发现,每次创建一个新按
钮会在布局中自动向下排列。这点和Grid和Canvas不同,在Grid和Canvas中复制粘贴控件,将会自动覆盖上一个控件,需要用ZIndex控
制其位置。
选中StackPanel,查看右边Properties属性栏,其中Layout中多了一个Orientation选项,默认为Vertical垂直排列。
点击展开下拉菜单,可以看到Horizontal水平排列,选中后,以上四个按钮分布将自动以水平方式排列。
和Grid相同,StackPanel也支持Margin和Horizontal Alignment,Vertical Alignment属性,这里我就不在赘述,详细大家可以看“布局快速入门Grid”
ScrollViewer控件
,是从WPF中移植来的,针对大内容控件的布局控件。由于该控件内仅能支持一个子控
件,所以在多数情况下,ScrollViewer控件都会和Stackpanel,Canvas和Grid相互配合使用。如果遇到内容较长的子控
件,ScrollViewer会生成滚动条,提供对内容的滚动支持。
创建一个ScrollViewer控件,会看到该控件右边自带滚动框,
我们将上例拖拽进新创建的ScrollViewer控件,Blend会提示按“Alt”将拖拽控件放入ScrollViewer,
放置成功后,由于内容过长,ScrollViewer的滚动条自动激活。对于ScrollViewer的滚动条,可以通过Properties属性栏进行设置控制,可以禁用,隐藏,或者设置仅在需要时候自动显示。
HorizontalScrollBarVisibility和VerticalScrollBarVisibility属性:
Auto = 仅在需要时候自动显示滚动条
Disabled = 禁用滚动条
Hidden = 隐藏滚动条
Visible =显示滚动条
Border控件
,是最简单的布局控件,也是最早期的一款Silverlight布局控件,该控件允许用户创建一个带有边框的布局控件。使用Border控件唯一需要注意的是该控件内仅能支持一个子控件。
在Blend中,绘制Border控件同样很简单,
将上例中的StackPanel拖拽进新创建的Border控件。
Blend会提示按着“Alt”是将控件放置在Border中,否则将修改Margin进行重新布局。这里我们按着Alt,完成拖拽。
Blend自动生成XAML代码如下:
1 <Border Margin="154,17,22,80" Grid.Column="1" Grid.Row="1" BorderBrush="Black" BorderThickness="1">
2 <StackPanel Margin="20,12,25,15" Orientation="Vertical">
3 <Button Height="30" HorizontalAlignment="Left" Margin="8,0,0,0" Width="103" Content="Button"/>
4 <Button Height="30" HorizontalAlignment="Left" Margin="8,0,0,0" Width="103" Content="Button"/>
5 <Button Height="30" HorizontalAlignment="Left" Margin="8,0,0,0" Width="103" Content="Button"/>
6 <Button Height="30" HorizontalAlignment="Left" Margin="8,0,0,0" Width="103" Content="Button"/>
7 </StackPanel>
8 </Border>
其中BorderBrush是边框颜色;
BorderThickness是边框的宽度;
修改以上两个属性,同样可以在右边的Properties属性栏进行修改。
至此,Silverlight的布局控件,我们已经介绍完了,笔者建议,在学习的过程中,还要配合实践,这样会达到熟练的效果。
如需转载请注明出处:http://www.ok22.org/art_detail.aspx?id=216
【Expression Blend实例中文教程(5) - 布局控件快速入门StackPanel】
分享到:
相关推荐
《Expression Blend实例中文教程》是一份专为Silverlight开发者准备的详细教程,旨在帮助学习者掌握这款强大的设计工具。教程采用中文讲解,便于国内用户理解并应用到实际项目中。以下将围绕教程中的核心知识点进行...
《Expression Blend实例中文教程系列》是由CSDN社区Silverlight版主jv9精心编写的教程,旨在帮助开发者深入理解和高效使用Expression Blend这一强大的设计工具。教程分为基础篇和实例篇,作者以其丰富的实际开发经验...
3. **Chapter 5:UI设计基础**:这个章节可能涉及基本的控件使用、布局管理(如Grid、StackPanel等)、以及颜色、字体和样式设置。通过实例,读者可以学习如何使用Blend创建美观且响应式的用户界面。 4. **Chapter ...
1. **界面设计**:讲解如何使用Expression Blend创建和编辑控件,包括布局容器(如Grid、StackPanel等)、形状、图像和文本等元素。还会介绍如何利用模板和样式来实现界面的统一和可重用性。 2. **数据绑定**:...
- **布局管理**:此章节重点阐述了Silverlight中的各种布局控件,如Grid、StackPanel、DockPanel等,以及如何使用它们来构建灵活、响应式的用户界面。通过实例演示,帮助读者掌握不同场景下的布局策略。 ### 4. ...
- 学习Silverlight的基本元素,如布局控件(Grid, StackPanel, WrapPanel等)、用户界面元素(TextBlock, Button, Image等)和数据绑定。 - 掌握Silverlight的动画和转换,以实现流畅的用户体验。 3. **XNA ...
- **布局控件**:如`Grid`、`StackPanel`和`DockPanel`,用于控制UI元素的布局。 - **媒体控件**:如`Image`和`MediaElement`,用于显示图像和播放多媒体。 - **菜单和工具栏**:如`ContextMenu`和`ToolBar`,用于...
4. **控件与布局管理**:学习使用各种内置控件,如Button、TextBox、ListBox等,以及如何利用Grid、StackPanel和Canvas等布局容器组织控件。 5. **数据绑定与MVVM模式**:理解数据绑定的概念,学习如何将视图模型...
** SerialPort串口通信实例详解 ** 在计算机编程中,串口通信是一种常见的硬件接口,用于设备间的数据传输。在Windows Presentation Foundation (WPF) 应用程序中,我们可以使用`System.IO.Ports.SerialPort`类来...
6. **控件与布局**:Silverlight提供了多种内置控件,如Button、TextBox、ListBox等,以及灵活的布局系统,如StackPanel、Grid和Canvas,帮助开发者构建复杂的用户界面。 7. **网络通信**:通过Http、SOAP、REST等...
文档将详细讲解如何利用Silverlight的控件库,如Grid、StackPanel、Button、TextBlock等,来设计和布局应用程序的界面。同时,还会介绍数据绑定和样式设定,使得UI更具响应性和可定制性。 其次,XNA框架在WP7开发中...
##### 第5章:面板控制布局 这里涉及的是Silverlight中用于布局管理的重要组件——面板(Panels)。读者可以学习到各种类型的面板(如Grid、StackPanel等)及其应用场景,从而更好地组织UI元素,构建美观且实用的...
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Title="MainWindow" Height="350" Width="525"> ...
5. **设置DataContext**:最后,在窗口的代码-behind文件中,将ViewModel实例设置为窗口的DataContext,使数据绑定生效。 ```csharp public partial class MainWindow : Window { public MainWindow() { ...