书名:WPF专业编程指南
作者:李应保
出版社:电子工业出版社
出版时间:2010-01
ISBN:9787121100116
一、堆积面板
- (StackPanel)
StackPanel是最简单的一种控制面板,它把其中的UI元素按横向或纵向堆积排列。
二、示例
- 在XAML中使用StackPanel:
<Window x:Class="Yingbao.Chapter3.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="送元二使安西" Height="300" Width="300">
<StackPanel Orientation ="Vertical" >
<TextBlock FontSize="16" Foreground="Brown">渭城朝雨浥轻尘,</TextBlock >
<TextBlock FontSize="16" Foreground="Brown">客舍青青柳色新.</TextBlock >
<TextBlock FontSize="16" Foreground="Brown">劝君更尽一杯酒,</TextBlock >
<TextBlock FontSize="16" Foreground="Brown">西出阳关无故人.</TextBlock >
<Button Background ="Coral" Click ="OnVertical">竖排</Button>
</StackPanel>
</Window>
-
在StackPanel里加了四个TextBlock控件,其内容为王维的四句诗,最后加了一个Button控件,上面这段XAML的运行结果如图3-2所示。
图3-2 StackPanel示例 - 注意:
在这段程序中,并没有指定TextBlock或Button的绝对位置坐标,而是在StackPanel中把Orientation属性设为纵向(Vertical),StackPanel就会自动地把其中的UI元素按照先后次序堆积起来,先进入StackPanel的元素放在最上面,后进入StackPanel的元素放在最下面。
三、自动调整
-
有时候需要把视窗的大小根据其中的内容来自动调整,方法是设置视窗的SizeToContent属性. SizeToContent是枚举类型,表3-1列出了其可取的值及其意义。
表3-1 SizeToContent值及其意义 若你对StackPanel和窗口间或UI元素与UI元素间的距离不满意,可以调整StackPanel或界面元素的Margin属性。
Margin的类型为Thickness,可以对其左、右、上、下分别设置。WPF内部对Margin的赋值操作进行了重载,若只指定一个数值,WPF会自动把left、right、top、bottom都相应地设为该值
四、滚动条
另外一种情况:视窗里的内容比计算机可用屏幕的尺寸还要大,这时候就要在视窗内加滚动条。
WPF提供ScrollBar和ScrollViewer来实现屏幕滚动,一般认为ScrollViewer比ScrollBar在滚动视窗中的内容时用起来方便。ScrollViewer还提供了8个用于控制每次滚动范围的方法:LineUp、LineDown、LineLeft、LineRight、PageUp、PageDown、PageLeft和PageRight这些方法可以在程序中模拟人工操作滚动条。

