你的位置是:网站首页--- .Net图形编程---.Net图形编程接口

Grid控件的使用


【 字体:


写在前面:Grid是WPF中重要的容器控件,它的作用与Table控件有相似之处,都需要针对每一个格子来设置内容,如设置长度宽度和每一个行列的数据。它拥有与DataTable相似的行列定义,如DataTable中对应DataRow,DataColumn而Grid容器也有这些定义,像ColumnDefinition,RowDefinition。而将控件放到某一个格子上面,也不容易的。设置时可以使用静态方法Grid.SetRow和Grid.SetColumn。

效果图
下图就是一个Grid,有四个格子,第一行一列放了一个ListBox,第一行二列放了一个TreeView,第二行一列放了一个Button,第二行二列放了一个TextBox。而每个格式之间都有虚线分隔,各个子控件可以使用Margin属性来修改其与格子边框的隔离。
 

源代码
ShowGridLines=true是用来设置格子之间的分隔线的,ColumnDefinition,RowDefinition是用来定义行和列的,ColumnDefinitions,RowDefinitions是行和列的集合,RowDefinition有Height属性没Width属性,类形为GridLength,ColumnDefinition有Width属性而没有Height属性,类形为GridLength。如果需要定义控件在哪个格子上面,可以使用Grid.SetColumn(control, index); Grid.SetRow(control, index);control就是那个控件,index就是所在行或所在列的顺序。

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Controls.Primitives;


namespace WPF
{
    public class WpfGrid:Window
    {
        [STAThread]
        public static void Main()
        {
            Application _application = new Application();
            _application.Run(new WpfGrid());
        }

        public WpfGrid()
        {
            Title = "测试Grid";

            //设置Window的长和宽
            Width = 96 * 4;
            Height = 96 * 3;

            //设置Grid
            Grid _grid = new Grid();            
            _grid.ShowGridLines = true;
            Content = _grid;

            //增加两列
            for (int i = 0; i < 2; i++)
            {
                ColumnDefinition _columnDefinition = new ColumnDefinition();
                _columnDefinition.Width = new GridLength(50, GridUnitType.Star);
                _grid.ColumnDefinitions.Add(_columnDefinition);
            }
            //增加两行
            for (int i = 0; i < 2; i++)
            {
                RowDefinition _rowDefinition = new RowDefinition();
                _rowDefinition.Height = new GridLength(80, GridUnitType.Star);
                _grid.RowDefinitions.Add(_rowDefinition);
            }
            //第一个控件ListBox
            ListBox _listBox = new ListBox();
            for (int i = 0; i < 5; i++)
            {
                _listBox.Items.Add("ListBox项" + i.ToString());
            }
            _listBox.Background = Brushes.Yellow;
            _grid.Children.Add(_listBox);            
            Grid.SetColumn(_listBox, 0);
            Grid.SetRow(_listBox, 0);

            //第二个控件TreeView
            TreeView _treeView = new TreeView();
            for (int i = 0; i < 10; i++)
            {
                _treeView.Items.Add("TreeNode" + i.ToString());    
            }
            _treeView.Background = Brushes.Pink;
            _grid.Children.Add(_treeView);            
            Grid.SetColumn(_treeView, 1);
            Grid.SetRow(_treeView, 0);

            //第三个控件Button
            Button _button = new Button();
            _button.Content = "第三个控件Button";
            _button.Margin = new Thickness(10);
            _grid.Children.Add(_button);
            Grid.SetColumn(_button, 0);
            Grid.SetRow(_button, 1);

            TextBox _textBox = new TextBox();
            _textBox.Text = "第四个控件TextBox";
            _textBox.Margin = new Thickness(10);
            _grid.Children.Add(_textBox);
            Grid.SetColumn(_textBox, 1);
            Grid.SetRow(_textBox, 1);

          
        }
       
    }
}


 


出处:小作坊网ChakMan原创

Copyright © 2006-2008 小作坊网 All rights reserved.
备案号:粤ICP备09058104号          电子信箱: jingle_guan#163.com