小牛的专栏

生命并非一個發現的過程,而是一個創造的過程。你并不是在發現你自己,而是在重新創造你自己。所以,別急于決定你是誰,而該急于決定你想做誰。

用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
Self131的公告
文章分类
    存档

    原创  WPF 画图一法 ->求解 收藏

             别人的博客是共享传输知识,我的恰恰相反。嘿嘿。

             这里大可山讲了怎么样用XAML代码画图,并有C#代码画出图形,不过他的文章重点讲解的是颜色知识。但没有讲到怎么样画到窗体上,所以自己想实现一下。

             从MSDN上了解到,使用相应Panel的Children.Add(UIElement element)方法,参数element为相应的控件。

            还是才疏学浅那,MSDN半天没看明白什么,并且每次单击,整个Grid都会变化。-_-!!! 

            也不知道思路对不?方法对不?望了解这方面东东的朋友指点一二。Thank!

    做法如下:

    新建一个WpfApplication,(不知道什么原因,默认的那个Grid在代码中找不到上述方法,鄙人才疏学浅,还望"知情人"告知,呵呵),删除原先的Grid,自己画一个任何类型的Panel,此例中画一个Grid。再拖出一个Button。

    在Button1_Click中的代码如下:

            private void button1_Click(object sender, RoutedEventArgs e)
            {
                var myRec = new Rectangle();
                myRec.Width = 100;
                myRec.Height = 40;
                myRec.Fill = Brushes.Blue;
                grid1.Children.Add(myRec);
            }

    .一个没意思想添加多个,用代码把Grid划分一下再加入控件,这里划分成4X3的

            private void button1_Click(object sender, RoutedEventArgs e)
            {

                 //列
                var  colDef1 = new ColumnDefinition();
                var  colDef2 = new ColumnDefinition();
                var  colDef3 = new ColumnDefinition();
                grid1.ColumnDefinitions.Add(colDef1);
                grid1.ColumnDefinitions.Add(colDef2);
                grid1.ColumnDefinitions.Add(colDef3);

                //行
                var rowDef1 = new RowDefinition();
                var rowDef2 = new RowDefinition();
                var rowDef3 = new RowDefinition();
                var rowDef4 = new RowDefinition();
                grid1.RowDefinitions.Add(rowDef1);
                grid1.RowDefinitions.Add(rowDef2);
                grid1.RowDefinitions.Add(rowDef3);
                grid1.RowDefinitions.Add(rowDef4);

               //把矩形放到第一行,第一列
                var myRec1 = new Rectangle();
                myRec1.Width = 100;
                myRec1.Height = 40;
                myRec1.Fill = Brushes.Blue;
                Grid.SetRow(myRec1 ,1);
                Grid.SetColumn(myRec1,1);

                var myRec2 = new Rectangle();
                myRec2.Width = 100;
                myRec2.Height = 40;
                myRec2.Fill = Brushes.Red ;
                Grid.SetRow(myRec2,1);
                Grid.SetColumn(myRec2,2);

                grid1.Children.Add(myRec);
                grid1.Children.Add(myRec2);
           }
     

            

    发表于 @ 2007年08月28日 20:33:00 | 评论( loading... ) | 编辑| 举报| 收藏

    旧一篇:VS 2008 Beta2 中文版 发布咯 | 新一篇:Simple Media Player WPF实现

    • 发表评论
    • 评论内容:
    •  
    Copyright © Self131
    Powered by CSDN Blog