自学WPF--第七课StackPanel控件

 

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;

            }

        }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值