WPF控件-StackPanel控件

转载 2013年12月03日 13:53:49

StackPanel元素用于水平或垂直堆叠子元素,StackPanel 要么垂直叠放包含的控件,要么将包含的控件排列在水平行中,具体情况取决于 Orientation 属性的值。 如果将比 StackPanel 的宽度能显示的控件还要多的控件添加到 StackPanel 中,这些控件将被截掉且不显示。 (MSDN)

下面以两个Demo练习一下:

1:

<Window x:Class="Demo_StackPanel.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="送元二使安西" Height="350" Width="525">
    <StackPanel>
        <TextBlock HorizontalAlignment="Center" FontSize="16" Foreground="Brown">渭城朝雨邑轻尘</TextBlock>
        <TextBlock HorizontalAlignment="Center" FontSize="16" Foreground="Brown">客舍青青柳色新</TextBlock>
        <TextBlock HorizontalAlignment="Center" FontSize="16" Foreground="Brown">劝君更尽一杯酒</TextBlock>
        <TextBlock HorizontalAlignment="Center" FontSize="16" Foreground="Brown">西出阳关无故人</TextBlock>
        <Button Background="Coral"  Click="Onvertical">竖排</Button>
    </StackPanel>
</Window>
2:

<Window x:Class="Demo_StackPanel.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300">
    <Grid>
       
    </Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace Demo_StackPanel
{
    /// <summary>
    /// Window1.xaml 的交互逻辑
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();

            this.Title = "送元二使安西";
            StackPanel sp = new StackPanel();
            this.Content = sp;
            sp.Children.Add(CreateTextBlock("渭城朝雨邑轻尘"));
            sp.Children.Add(CreateTextBlock("客舍青青柳色新"));
            sp.Children.Add(CreateTextBlock("劝君更尽一杯酒"));
            sp.Children.Add(CreateTextBlock("西出阳关无故人"));

            Button btn = new Button();
            btn.Height = 40;
            btn.Background = new SolidColorBrush(Colors.Brown);
            btn.Click += new RoutedEventHandler(btn_Click);
            btn.Content = "竖排";
            sp.Children.Add(btn);
        }

        void btn_Click(object sender, RoutedEventArgs e)
        {
          
        }
       
        //定义方法,根据诗句创建TextBlock
        private TextBlock CreateTextBlock(string text)
        {
            TextBlock tb = new TextBlock();
            tb.HorizontalAlignment = HorizontalAlignment.Center;
            tb.FontSize = 16;
            tb.Foreground = new SolidColorBrush(Colors.BlueViolet);
            tb.Text = text;
            return tb;
        }
    }
}

WPF控件学习系列---StackPanel控件

WPF StackPanel                                        图1.1 Introduction介绍The StackPanel in WPF is a ...
  • gavinlove_
  • gavinlove_
  • 2011年04月16日 11:01
  • 1849

控件篇 - 子控件在StackPanel里的居中问题

如下面代码:   原意是想通过HorizontalAlignment和VerticalAlignment属性把TextBlock在StackPanel里水平和垂直都居中,但实际效...
  • tianmuxia
  • tianmuxia
  • 2012年08月24日 13:29
  • 7863

wpf XMAL中隐藏控件

首先,需要解决怎样在Click事件后设置Visibility属性?WPF中的EventSetter只能连接事件和事件处理的方法。而EventTrigger则只能定义TriggerAction,而不能添...
  • a771948524
  • a771948524
  • 2013年07月07日 18:45
  • 2150

WPD-StackPanel中的控件水平居中

第一步:设定StackPanel的宽度 第二步:StackPanel中的子控件设定为 HorizontalAlignment="Center" 代码如下:...
  • yqj234
  • yqj234
  • 2016年03月14日 08:52
  • 956

WPF模板(一):控件模板、数据模板、面板模板

控件模板:如果控件的样式不能满足,可自定义控件模板来设计样式。
  • ceasadan
  • ceasadan
  • 2017年03月11日 11:56
  • 295

#320 – StackPanel默认如何设置子控件的大小(Default Size of StackPanel Child Controls)

默认情况下,StackPanel 根据下面的逻辑来设置子控件的大小: 如果是Orientation 是垂直的:  -子控件的高度将根据其自身的需要确定  -子控件的宽度将横向占满整个StackP...
  • Libby1984
  • Libby1984
  • 2016年10月09日 17:27
  • 1668

StackPanel控件的使用

  • dszgf5717
  • dszgf5717
  • 2013年08月11日 21:53
  • 586

wpf 使用 storyboard 设置 控件 移动动画

private void moveTo(Point deskPoint, Viewbox ell, double)         {             //Point p = e.GetP...
  • chr23899
  • chr23899
  • 2014年08月26日 20:50
  • 3332

获取ItemsControl里面的控件

ItemsControl通过Binding获得数据,每个数据的模板在DataTemplate里面,直接查找DateTemplate里的控件获取不到。可以在ItemsControl的ItemContai...
  • HFDNGL
  • HFDNGL
  • 2016年06月28日 19:03
  • 1058

【WPF】—StackPanel && Grid 初识布局容器(1)

先创建一个Grid,命名为gridGame: 当窗体加载时触发,所以在属性框中,点击事件中的Loaded,实现: private void...
  • huo065000
  • huo065000
  • 2015年09月08日 20:08
  • 1498
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WPF控件-StackPanel控件
举报原因:
原因补充:

(最多只允许输入30个字)