WPF_布局练习_动态添加按钮_计算器_2013-04-30
2013-04-30 16:01
337 查看
向杨中科老师致敬!
XAML:
//==============================================================
<Window x:Class="布局练习.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="322.369" Width="227.485" Loaded="Window_Loaded_1">
<Grid >
<Grid Name="Calculator"/>
</Grid>
</Window>
//===============================================================
CS:
//===============================================================
private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
//1. 动态添加7行
for (int i = 0; i < 7; i++)
{
Calculator.RowDefinitions.Add(new RowDefinition());
}
//2. 动态添加5列
for (int j = 0; j < 5; j++)
{
Calculator.ColumnDefinitions.Add(new ColumnDefinition());
}
//3. 动态添加数字文本框
TextBox txt = new TextBox();
txt.Name = "txtShow";
txt.Text = "0";
txt.FontSize = 35;
txt.TextAlignment = TextAlignment.Right;
Grid.SetRow(txt, 0);
Grid.SetColumn(txt,0);
Grid.SetColumnSpan(txt,5);
Calculator.Children.Add(txt);
//4. 动态添加按钮
for (int i = 1; i < 7; i++)
{
for (int j = 0; j < 5; j++)
{
if ( (i != 6 || j != 1) && (i!=6 || j!= 4))
{
Button btn = new Button();
string sName = i + "," + j;
switch (sName)
{
case "1,0":
btn.Content = "MC";
break;
case "1,1":
btn.Content = "MR";
break;
case "1,2":
btn.Content = "MS";
break;
case "1,3":
btn.Content = "M+";
break;
case "1,4":
btn.Content = "M-";
break;
case "2,0":
btn.Content = "<--";
break;
case "2,1":
btn.Content = "CE";
break;
case "2,2":
btn.Content = "C";
break;
case "2,3":
btn.Content = "土";
break;
case "2,4":
btn.Content = "V";
break;
case "3,0":
btn.Content = "7";
break;
case "3,1":
btn.Content = "8";
break;
case "3,2":
btn.Content = "9";
break;
case "3,3":
btn.Content = "/";
break;
case "3,4":
btn.Content = "%";
break;
case "4,0":
btn.Content = "4";
break;
case "4,1":
btn.Content = "5";
break;
case "4,2":
btn.Content = "6";
break;
case "4,3":
btn.Content = "*";
break;
case "4,4":
btn.Content = "1/x";
break;
case "5,0":
btn.Content = "1";
break;
case "5,1":
btn.Content = "2";
break;
case "5,2":
btn.Content = "3";
break;
case "5,3":
btn.Content = "-";
break;
case "5,4":
btn.Content = "=";
break;
case "6,0":
btn.Content = "0";
break;
case "6,2":
btn.Content = ".";
break;
case "6,3":
btn.Content = "+";
break;
}
Grid.SetRow(btn, i);
Grid.SetColumn(btn, j);
switch (btn.Content.ToString())
{
case "0":
Grid.SetColumnSpan(btn, 2);
break;
case "=":
Grid.SetRowSpan(btn, 2);
break;
}
Calculator.Children.Add(btn);
}
}
}
}
//===============================================================
相关文章推荐
- WPF动态添加按钮并相应事件。
- 揭秘在ListView等AdapterView上动态添加删除项的陷阱(和在listview下添加按钮的布局设计)
- wpf 计算器布局练习
- wpf 计算器布局练习
- WPF动态添加按钮并相应事件。
- 黑马程序员-wpf 计算器布局练习
- wpf中利用布局动态添加控件
- 给动态添加的按钮添加动态事件
- 自定义流式布局 --动态的添加数据
- 【WPF】整个自定义按钮后台添加
- IOS学习之动态添加Button和监听UIAlertView按钮
- 【WPF】日历中拓展添加今天和清空按钮(菜鸟教程)
- WPF:理解ContentControl——动态添加控件和查找控件
- c#的动态按钮数组的添加与功能实现
- ❤❀自定义View之tabbar,动态添加item,告别布局烦恼❀❤
- wpf datagrid 中按钮 动态显示
- 给动态创建的按钮添加事件
- Android 在已有布局中动态添加控件
- Unity UGUI按钮动态添加点击事件
- 利用JS为Jsp页面动态添加添加按钮,再为每一个按钮添加不同的事件