别人的博客是共享传输知识,我的恰恰相反。嘿嘿。
这里大可山讲了怎么样用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... ) | 举报| 收藏