自学WPF--第七课StackPanel控件
2011-07-31 22:44
148 查看
StackPanel控件是一个面板,可以对放在其中的所有控件进行排列,对齐等相关操作,相当于Windows Forms中的Panel控件
代码如下所示:
<Border BorderBrush="Black" Background="White" BorderThickness="2">
<Grid HorizontalAlignment="Left" VerticalAlignment="Top" >
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition Height="55"/>
<RowDefinition Height="400"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="190"/>
<ColumnDefinition />
<ColumnDefinition Width="190"/>
<ColumnDefinition />
<ColumnDefinition Width="190"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock FontSize="14" FontWeight="Bold" TextWrapping="Wrap" Grid.Row="0" Grid.ColumnSpan="6" Margin="0,0,0,10">
StackPanel HorizontalAlignment
and VerticalAlignment Sample
</TextBlock>
<TextBlock FontSize="12" TextWrapping="Wrap" Grid.Row="1" Grid.ColumnSpan="6">
User the ListBoxes below to
manipulate the Orientation of the nested StackPanel,as well as the
HorizontalAlignemnt and VerticalAlignment of the Buttons with the yello
StackPanel
</TextBlock>
<TextBlock FontSize="12" Grid.Row="2" Grid.Column="0">
Change StackPanel Orientation
</TextBlock>
<ListBox SelectionChanged="listBox1_SelectionChanged" Grid.Column="1" Grid.Row="2" Grid.RowSpan="3" Height="50" HorizontalAlignment="Center" Name="listBox1" VerticalAlignment="Top"
Width="80" >
<ListBoxItem>Horizontal</ListBoxItem>
<ListBoxItem>Vertical</ListBoxItem>
</ListBox>
<TextBlock Grid.Column="2" Grid.Row="2" HorizontalAlignment="Left" Name="txtHorizontal" VerticalAlignment="Top">
Change HorizontalAlignment
</TextBlock>
<ListBox SelectionChanged="ltboxHorizontal_SelectionChanged" Grid.Column="3" Grid.Row="2" Height="50" HorizontalAlignment="Center"
Name="ltboxHorizontal"
VerticalAlignment="Top" Width="80" >
<ListBoxItem>Left</ListBoxItem>
<ListBoxItem>Right</ListBoxItem>
<ListBoxItem>Center</ListBoxItem>
<ListBoxItem>Stretch</ListBoxItem>
</ListBox>
<TextBlock Grid.Column="4" Grid.Row="2" HorizontalAlignment="Left" Name="txtVertical" Text="Change
VerticalAlignment" VerticalAlignment="Top" />
<ListBox SelectionChanged="ltboxVertical_SelectionChanged" Grid.Column="5" Grid.Row="2" Height="50" HorizontalAlignment="Center" Name="ltboxVertical" VerticalAlignment="Top"
Width="80" >
<ListBoxItem>Top</ListBoxItem>
<ListBoxItem>Bottom</ListBoxItem>
<ListBoxItem>Center</ListBoxItem>
<ListBoxItem>Stretch</ListBoxItem>
</ListBox>
<StackPanel Grid.ColumnSpan="6" Grid.Row="3" Name="stackPanel1" Background="Yellow">
<Button>Button One</Button>
<Button>Button Two</Button>
<Button>Button Three</Button>
<Button>Button Four</Button>
<Button>Button Five</Button>
<Button>button Six</Button>
</StackPanel>
</Grid>
</Border>
后台功能代码如下:
public partial class MainWindow :
Window
{
public MainWindow()
{
InitializeComponent();
}
private void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListBoxItem item = (sender as ListBox).SelectedItem as ListBoxItem;
if(item.Content.ToString()=="Horizontal")
{
stackPanel1.Orientation = Orientation.Horizontal;
}
else if (item.Content.ToString() == "Vertical")
{
stackPanel1.Orientation = Orientation.Vertical;
}
}
private void ltboxHorizontal_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListBoxItem item = (sender as ListBox).SelectedItem as ListBoxItem;
if(item.Content.ToString() == "Left")
{
stackPanel1.HorizontalAlignment= HorizontalAlignment.Left;
}
else if (item.Content.ToString() == "Right")
{
stackPanel1.HorizontalAlignment= HorizontalAlignment.Right;
}
else if (item.Content.ToString() == "Center")
{
stackPanel1.HorizontalAlignment= HorizontalAlignment.Center;
}
else if (item.Content.ToString() == "Stretch")
{
stackPanel1.HorizontalAlignment= HorizontalAlignment.Stretch;
}
}
private void ltboxVertical_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListBoxItem item = (sender as ListBox).SelectedItem as ListBoxItem;
if(item.Content.ToString() == "Top")
{
stackPanel1.VerticalAlignment =VerticalAlignment.Top;
}
else if (item.Content.ToString() == "Bottom")
{
stackPanel1.VerticalAlignment =VerticalAlignment.Bottom;
}
else if (item.Content.ToString() == "Center")
{
stackPanel1.VerticalAlignment =VerticalAlignment.Center;
}
else if (item.Content.ToString() == "Stretch")
{
stackPanel1.VerticalAlignment =VerticalAlignment.Stretch;
}
}
代码如下所示:
<Border BorderBrush="Black" Background="White" BorderThickness="2">
<Grid HorizontalAlignment="Left" VerticalAlignment="Top" >
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition Height="55"/>
<RowDefinition Height="400"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="190"/>
<ColumnDefinition />
<ColumnDefinition Width="190"/>
<ColumnDefinition />
<ColumnDefinition Width="190"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock FontSize="14" FontWeight="Bold" TextWrapping="Wrap" Grid.Row="0" Grid.ColumnSpan="6" Margin="0,0,0,10">
StackPanel HorizontalAlignment
and VerticalAlignment Sample
</TextBlock>
<TextBlock FontSize="12" TextWrapping="Wrap" Grid.Row="1" Grid.ColumnSpan="6">
User the ListBoxes below to
manipulate the Orientation of the nested StackPanel,as well as the
HorizontalAlignemnt and VerticalAlignment of the Buttons with the yello
StackPanel
</TextBlock>
<TextBlock FontSize="12" Grid.Row="2" Grid.Column="0">
Change StackPanel Orientation
</TextBlock>
<ListBox SelectionChanged="listBox1_SelectionChanged" Grid.Column="1" Grid.Row="2" Grid.RowSpan="3" Height="50" HorizontalAlignment="Center" Name="listBox1" VerticalAlignment="Top"
Width="80" >
<ListBoxItem>Horizontal</ListBoxItem>
<ListBoxItem>Vertical</ListBoxItem>
</ListBox>
<TextBlock Grid.Column="2" Grid.Row="2" HorizontalAlignment="Left" Name="txtHorizontal" VerticalAlignment="Top">
Change HorizontalAlignment
</TextBlock>
<ListBox SelectionChanged="ltboxHorizontal_SelectionChanged" Grid.Column="3" Grid.Row="2" Height="50" HorizontalAlignment="Center"
Name="ltboxHorizontal"
VerticalAlignment="Top" Width="80" >
<ListBoxItem>Left</ListBoxItem>
<ListBoxItem>Right</ListBoxItem>
<ListBoxItem>Center</ListBoxItem>
<ListBoxItem>Stretch</ListBoxItem>
</ListBox>
<TextBlock Grid.Column="4" Grid.Row="2" HorizontalAlignment="Left" Name="txtVertical" Text="Change
VerticalAlignment" VerticalAlignment="Top" />
<ListBox SelectionChanged="ltboxVertical_SelectionChanged" Grid.Column="5" Grid.Row="2" Height="50" HorizontalAlignment="Center" Name="ltboxVertical" VerticalAlignment="Top"
Width="80" >
<ListBoxItem>Top</ListBoxItem>
<ListBoxItem>Bottom</ListBoxItem>
<ListBoxItem>Center</ListBoxItem>
<ListBoxItem>Stretch</ListBoxItem>
</ListBox>
<StackPanel Grid.ColumnSpan="6" Grid.Row="3" Name="stackPanel1" Background="Yellow">
<Button>Button One</Button>
<Button>Button Two</Button>
<Button>Button Three</Button>
<Button>Button Four</Button>
<Button>Button Five</Button>
<Button>button Six</Button>
</StackPanel>
</Grid>
</Border>
后台功能代码如下:
public partial class MainWindow :
Window
{
public MainWindow()
{
InitializeComponent();
}
private void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListBoxItem item = (sender as ListBox).SelectedItem as ListBoxItem;
if(item.Content.ToString()=="Horizontal")
{
stackPanel1.Orientation = Orientation.Horizontal;
}
else if (item.Content.ToString() == "Vertical")
{
stackPanel1.Orientation = Orientation.Vertical;
}
}
private void ltboxHorizontal_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListBoxItem item = (sender as ListBox).SelectedItem as ListBoxItem;
if(item.Content.ToString() == "Left")
{
stackPanel1.HorizontalAlignment= HorizontalAlignment.Left;
}
else if (item.Content.ToString() == "Right")
{
stackPanel1.HorizontalAlignment= HorizontalAlignment.Right;
}
else if (item.Content.ToString() == "Center")
{
stackPanel1.HorizontalAlignment= HorizontalAlignment.Center;
}
else if (item.Content.ToString() == "Stretch")
{
stackPanel1.HorizontalAlignment= HorizontalAlignment.Stretch;
}
}
private void ltboxVertical_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListBoxItem item = (sender as ListBox).SelectedItem as ListBoxItem;
if(item.Content.ToString() == "Top")
{
stackPanel1.VerticalAlignment =VerticalAlignment.Top;
}
else if (item.Content.ToString() == "Bottom")
{
stackPanel1.VerticalAlignment =VerticalAlignment.Bottom;
}
else if (item.Content.ToString() == "Center")
{
stackPanel1.VerticalAlignment =VerticalAlignment.Center;
}
else if (item.Content.ToString() == "Stretch")
{
stackPanel1.VerticalAlignment =VerticalAlignment.Stretch;
}
}
相关文章推荐
- 自学WPF--第九课Typography.Variants属性
- WPF自学教程系列2:如何在xaml文件添加引用?
- 从WinForm到WPF的自学笔记
- WPF/E CTP Quick Start - 第七部分:文本(翻译)
- 自学WPF--第十课Slider类
- WPF自学入门(五)WPF依赖属性
- WPF/E CTP Quick Start - 第七部分:文本(翻译)
- C#学习第七弹之WPF
- 自学WPF--第五课渐变画刷
- 自学WPF--第十一课Resources与Trigger类
- WPF控件-StackPanel控件
- 自学WPF--第六课VisualBrush
- 自学WPF--第十二课Effect属性
- WPF自学—模仿QQ窗体载入和关闭动画
- WPF,Silverlight与XAML读书笔记第七 - WPF新概念之二依赖属性
- WPF自学入门(三)WPF路由事件之内置路由事件
- 【自学笔记】新建一个WPF(3.0、3.5、4.0)
- WPF自学方法
- WPF控件学习系列---StackPanel控件
- 自学WPF--第一课简介